2

我有一个基于 Maven 的多模块项目。该项目是一个EAR包含子部署的文件,包括first-ejb.jarfirst-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.xmlmainfirst-web.warpersistence.xmlfirst-ejb.jar

所以,我的问题是如何在多模块项目中的 Maven 中说,在运行模块的测试用例时persistence.xml从测试目录中包含。first-ejb.jarfirst-web.war

编辑:

因此,我浏览了first-web.war运行测试时使用的类路径。我看到它包含first-ejb.jar它的依赖项(这对于生产构建是正确的)。这实际上是对模块的测试搞砸了,first-web.war因为它最终使用了persistence.xmlfrom src\main\resourcesof first-ejb.jarmodule。

所以,我相信我需要做的是声明另一个工件,其中包含在其目录中first-ejb.jar包含但不同的所有内容。我可以命名它。然后我可以使这个工件成为项目的依赖项,以便通过配置文件运行测试。persistence.xmlsrc\main\resourcesfirst-ejb-test.jarfirst-web.warmaven

4

0 回答 0