Java 如何使使用maven assembly插件生成的WAR存档可用于其他项目';单元测试?
我的问题由两个maven项目组成,一个服务器项目a和一个客户端项目B。a使用maven汇编插件生成a的几个变体,其中一个变体是WAR归档。我面临的问题与B的测试驱动开发有关;如何使项目A中生成的WAR归档可以从项目B中的单元测试中访问/寻址?我的想法是在项目B中构建测试用例,其中WAR存档通过WebApppContext的setWar(字符串路径)函数部署在嵌入式Jetty服务器中。您可以将来自其他子模块的工件声明为测试依赖项,例如:Java 如何使使用maven assembly插件生成的WAR存档可用于其他项目';单元测试?,java,maven-2,junit,maven-assembly-plugin,Java,Maven 2,Junit,Maven Assembly Plugin,我的问题由两个maven项目组成,一个服务器项目a和一个客户端项目B。a使用maven汇编插件生成a的几个变体,其中一个变体是WAR归档。我面临的问题与B的测试驱动开发有关;如何使项目A中生成的WAR归档可以从项目B中的单元测试中访问/寻址?我的想法是在项目B中构建测试用例,其中WAR存档通过WebApppContext的setWar(字符串路径)函数部署在嵌入式Jetty服务器中。您可以将来自其他子模块的工件声明为测试依赖项,例如: ${project.groupId} 模 ${projec
${project.groupId}
模
${project.version}
试验罐
测试
这样,您肯定可以使用来自另一个模块的jar。虽然我不确定它是否适用于WAR文件,但它可能值得一试
请注意,针对部署在嵌入式web容器中的WAR运行的测试很难算作单元测试,而不是集成测试。在项目中起作用的方法是:
感谢您的回答,我通过在依赖项声明中使用-标记并稍微调整maven依赖项插件,成功地使其工作。
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>ModuleA</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>