我在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所需的jars添加到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上添加测试范围依赖项无济于事。有什么办法可以解决这个问题吗?
发布于 2013-05-23 19:41:04
您是否尝试指定maven scope 测试?否则它在测试时将不可用!如果只提供此版本用于测试,您可以使用maven配置文件。
发布于 2013-12-13 00:09:49
我看到了这个问题的两种可能的解决方案:要么构建自己的嵌入glassfish的,要么使用暴力方法修改jar。
关于第一种方法的:在花了一些时间构建GF之后,我认为即使是我的外行shell脚本编写技能,使用第二种方法也更容易,而不是计算GF代码。但是,如果你准备好了,我建议你从oracle wiki开始。
关于第二种方法:正如我在上面提到的,在我看来,自动化这项任务是最好的方法(至少如果你要处理大量的库和持续的变化),所以我编写了this脚本,其中包含了如何使用它的所有必要说明。在获得新的jar之后,只需在本地存储库中install它。我使用的是Nexus,所以对我来说,这只是按下几个按钮的问题。
附言:欢迎对脚本的任何意见/建议/改进。
https://stackoverflow.com/questions/16670701
复制相似问题