2

我在 Maven 项目中使用 glassfish-embedded-web 进行集成测试:

    <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-web</artifactId>
        <version>3.2-b06</version>
        <scope>test</scope>
    </dependency>

glassfish-embedded-web 带有 Eclipselink 2.2.0,但该项目需要 2.4 的功能。对于常规部署,通过将 je 所需的 jar 添加到 glassfish 的模块目录和此依赖项来解决此问题:

    <dependency>
      <groupId>org.eclipse.persistence</groupId>
      <artifactId>org.eclipse.persistence.core</artifactId>
      <version>2.4.1</version>
      <scope>provided</scope>
    </dependency>

我也尝试了编译范围,仍然使用嵌入式 EL 2.2.0。添加对 EL 2.4.1 的测试范围依赖项没有帮助。有没有办法解决这个问题?

4

2 回答 2

0

我看到这个问题有两种可能的解决方案:要么构建自己的 glassfish-embedded,要么只使用蛮力方法并修改 jar

第一种方法: 在花了一些时间构建 GF 之后,我发现即使具有我的业余 shell 脚本技能,使用第二种方法而不是计算 GF 代码更容易。但是,如果您愿意,我建议您从oracle wiki开始。

第二种方法:正如我上面提到的,在我看来,自动化这个任务是最好的方法(至少如果你正在处理大量的库和持续的更改),所以我编写了这个脚本,其中包含所有必要的说明如何使用它。获得新 jar 后,只需将其安装在本地存储库中即可。我正在使用Nexus,所以对我来说,这只是几个按钮被按下的问题。

PS:欢迎对脚本提出任何意见/建议/改进。

于 2013-12-12T16:09:48.650 回答
0

您是否尝试指定 Maven 范围测试?否则测试时将无法使用!要仅提供此版本进行测试,您可以使用 Maven 配置文件。

于 2013-05-23T11:41:03.703 回答