JPA persistence.xml类路径是否位于?

Vin*_*nie 8 java maven-2 unit-testing jpa classpath

这就是我想要做的.我在Web应用程序中使用JPA持久性,但我有一组单元测试,我想在容器外运行.

我的主应用程序位于我的主应用程序persistence.xmlMETA_INF文件夹中,它在容器(Glassfish)中运行良好.

persistence.xmlMETA-INF我的test-classes目录的文件夹中放了第二个.这包含一个单独的持久性单元,我只想用于测试.在eclipse中,我将此文件夹放在类路径中比默认文件夹更高,它似乎工作.

现在,当我直接从命令行运行maven构建并尝试运行单元测试时,将persistence.xml忽略覆盖.我可以META-INF在maven生成的test-classes目录的文件夹中看到覆盖,我希望maven测试使用这个文件,但事实并非如此.我的Spring测试配置覆盖,以类似的方式实现了工作.

我很困惑是否persistence.xml位于类路径中.如果是,我的覆盖应该像弹簧覆盖一样工作,因为maven surefire插件解释 "[测试类目录]将包含在测试类路径的开头".

我错误地预测了persistence.xml文件的位置吗?

我可以(并且已经)在生产persistence.xml文件中创建第二个持久性单元,但是将测试配置放入此生产文件中会感觉很脏.关于如何实现我的目标的任何其他想法都是受欢迎的.

Ken*_*Liu 3

persistence.xml从类路径加载;过去,我确实按照你所描述的做了。

很可能是maven的问题。您可以通过使用选项运行来调试 Maven 类路径-X