使用不同的eclipselink而不是glassfish-embedded-web中捆绑的

时间:2013-05-21 13:02:22

标签: glassfish eclipselink glassfish-embedded

我使用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上添加测试范围依赖性没有帮助。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我看到了这个问题的两种可能的解决方案:要么构建自己的glassfish嵌入式,要么只使用暴力方法和修改jar

第一种方法: 花了一些时间构建GF之后,我认为即使使用我的dilettante shell脚本技能,也更容易使用第二种方法而不是使用GF代码。但是,如果你想要这个,我建议你从oracle wiki开始。

关于第二种方法:正如我上面提到的,在我看来,自动执行此任务是最好的方法(至少如果你正在处理大量的库和持续的更改),所以我编写了this脚本,其中包含有关如何使用它的所有必要说明。在你的本地仓库中获得新罐子install之后。我正在使用Nexus所以对我而言,这是按下几个按钮的问题。

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