一、前言及背景
maven中多模块间共享测试代码
moduleA 下的test代码TestClassA
依赖moduleB下的test代码TestClassB
也就是说TestClassB其实是一个共享的测试。
如下图中介绍,这个项目来源于开源项目hop:
hop-engine模块中的测试类RestoreHopEngineEnvironment
依赖hop-core模块中的测试类RestoreHopEnvironment
二、maven的处理方式
首先对基础类的maven的配置,
它将会把src/test/java
使用jar插件创建jar代码文件,以便具有测试的模块可以共享代码
<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>
其次对发起依赖的项目的配置,使用指定的测试分类器指定对主工件的依赖关系
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>tests</classifier>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
注意配置
<classifier>tests</classifier>
<type>test-jar</type>
<scope>test</scope>
的使用,与原本的dependecy的区别。