我使用glassfish-embedded-web在maven项目中进行集成测试:
<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的功能。对于常规部署,可以通过向glassfish的modules目录添加je required jar来解决这个问题:
<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上添加测试范围依赖性没有帮助。有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
您是否尝试指定maven范围测试?否则在测试时将无法使用!要仅提供此版本以进行测试,您可以使用maven配置文件。
答案 1 :(得分:0)
我看到了这个问题的两种可能的解决方案:要么构建自己的glassfish嵌入式,要么只使用暴力方法和修改jar 。
第一种方法: 花了一些时间构建GF之后,我认为即使使用我的dilettante shell脚本技能,也更容易使用第二种方法而不是使用GF代码。但是,如果你想要这个,我建议你从oracle wiki开始。
关于第二种方法:正如我上面提到的,在我看来,自动执行此任务是最好的方法(至少如果你正在处理大量的库和持续的更改),所以我编写了this脚本,其中包含有关如何使用它的所有必要说明。在你的本地仓库中获得新罐子install之后。我正在使用Nexus所以对我而言,这是按下几个按钮的问题。
P.S。:欢迎对脚本提出任何意见/建议/改进。