我有一个基于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
,这导致我的测试用例失败。
所以,我的问题是,在为persistence.xml
模块运行测试用例时,如何在Maven的多模块项目中说明first-ejb.jar
中的first-web.war
包含first-web.war
。
编辑:
因此,我浏览了运行first-ejb.jar
测试时使用的类路径。我看到它包含first-web.war
作为其依赖(对于生成构建是正确的)。实际上,这会阻止persistence.xml
模块的测试,因为它最终使用来自src\main\resources
first-ejb.jar
模块的first-ejb.jar
的{{1}}。
所以,我相信我需要做的是声明另一个工件,其中包含persistence.xml
包含但src\main\resources
目录中不同first-ejb-test.jar
的所有内容。我可以命名为first-web.war
。然后,我可以使此工件成为maven
项目的依赖项,以便通过{{1}}配置文件运行测试。