使用不同的eclipselink,而不是捆绑在glassfish嵌入式网络中

使用不同的eclipselink,而不是捆绑在glassfish嵌入式网络中,glassfish,eclipselink,glassfish-embedded,Glassfish,Eclipselink,Glassfish Embedded,我在maven项目中使用glassfish嵌入式web进行集成测试: <dependency> <groupId>org.glassfish.extras</groupId> <artifactId>glassfish-embedded-web</artifactId> <version>3.2-b06</version> <scope

我在maven项目中使用glassfish嵌入式web进行集成测试:

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

org.glassfish.extras
玻璃鱼嵌入网
3.2-b06
测试
glassfish嵌入式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>

org.eclipse.persistence
org.eclipse.persistence.core
2.4.1
假如

我还尝试了编译范围,但仍然使用嵌入式EL2.2.0。在EL 2.4.1上添加测试范围依赖项没有帮助。有什么方法可以解决这个问题吗?

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

我看到了解决此问题的两种可能的解决方案:要么您构建自己的glassfish embedded,要么您只需使用蛮力方法修改jar

第一次进近时: 在花了一些时间构建GF之后,我发现即使有了我的外行shell脚本技能,使用第二种方法也比使用GF代码更容易。不过,如果你想参加这次比赛,我建议你从开始

关于第二种方法:正如我前面提到的,在我看来,自动化此任务是最好的方法(至少在处理大量LIB和连续更改时是如此),因此我编写了脚本,其中包含了关于如何使用它的所有必要说明。在你得到新的罐子后,就在你当地的回购协议中。我正在使用,所以对我来说,这只是几个按钮被按下的问题


附言:欢迎对剧本提出任何意见/建议/改进。

我试过了。编译结果导致“package org.eclipse.persistence.annotations不存在”错误。这个包在org.eclipse.persistence.coreOh中。很抱歉,没有读到您已经尝试编译和测试范围。我使用的是
org.glassfish.main.extras:glassfish embedded all:3.1.2.2
,当我使用eclipse链接提供的作用域时,它就起作用了。你最终找到了一个可行的解决方案吗?