我有一个基于 Maven 的多模块项目。该项目是一个EAR
包含子部署的文件,包括first-ejb.jar
和first-web.war
. first-ejb.jar
包含两个,persistence.xml
一个是它src/main/resources/META-INF/persistence.xml
,第二个是在src/test/resources/META-INF/persistence.xml
。从测试目录中选择的测试用例first-ejb.jar
成功执行persistence.xml
(我手动排除)。但是当我为它运行测试用例时,它的主目录中包含我的测试用例失败。persistence.xml
main
first-web.war
persistence.xml
first-ejb.jar
所以,我的问题是如何在多模块项目中的 Maven 中说,在运行模块的测试用例时persistence.xml
从测试目录中包含。first-ejb.jar
first-web.war
编辑:
因此,我浏览了first-web.war
运行测试时使用的类路径。我看到它包含first-ejb.jar
它的依赖项(这对于生产构建是正确的)。这实际上是对模块的测试搞砸了,first-web.war
因为它最终使用了persistence.xml
from src\main\resources
of first-ejb.jar
module。
所以,我相信我需要做的是声明另一个工件,其中包含在其目录中first-ejb.jar
包含但不同的所有内容。我可以命名它。然后我可以使这个工件成为项目的依赖项,以便通过配置文件运行测试。persistence.xml
src\main\resources
first-ejb-test.jar
first-web.war
maven