你如何依赖 Maven 中另一个模块的测试代码?
例如,我有 2 个模块:
我想要 Main 中的测试用例来扩展 Base 中的基本测试类。这可能吗?
更新:找到了一个可接受的答案,其中涉及创建一个测试 jar。
感谢基本模块的建议。但是,我宁愿不为此目的创建一个新模块。
这会src/test/java使用jar 插件创建代码的 jar 文件,以便带有测试的模块可以共享代码。
src/test/java
<project> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <executions> <execution> <goals> <goal>test-jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
为了使用上面创建的附加测试 JAR,您只需使用指定的测试分类器指定对主工件的依赖项:
<project> ... <dependencies> <dependency> <groupId>com.myco.app</groupId> <artifactId>foo</artifactId> <version>1.0-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency> </dependencies> ... </project>
我建议使用类型而不是分类器(另请参阅:分类器)。它更明确地告诉 Maven 你在做什么(我发现 m2eclipse 和 q4e 都更喜欢它)。
<dependency> <groupId>com.myco.app</groupId> <artifactId>foo</artifactId> <version>1.0-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency>