我有两个maven模块,A和AB,AB取决于A中的测试文件。两者都引用父pom。
我发现了test-jar的魔力,它允许我编译我的程序,但我仍然无法使用mvn test运行测试。
奇怪的是,mvn包测试似乎有效。
这是我的基本配置:
...
<parent>
<groupId>com.acme.parent</groupId>
<artifactId>parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.0</version>
</parent>
<groupId>com.acme</groupId>
<artifactId>A</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
项目AB(取决于A)
...
<parent>
<groupId>com.acme.parent</groupId>
<artifactId>parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.0</version>
</parent>
<artifactId>AB</artifactId>
<packaging>jar</packaging>
<version>1.0</version>
<dependency>
<groupId>com.acme</groupId>
<artifactId>A</artifact>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.acme</groupId>
<artifactId>A</artifact>
<version>1.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
...
最后,来自父pom的相关位:
...
<groupId>com.acme.parent</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>A</module>
<module>AB</module>
</module>
...
所以,尽管如此,我如何让mvn测试按预期运行?
顺便说一句,我正在使用maven 2.2.1。
答案 0 :(得分:0)
这可能与其中一个未解决的错误有关,例如MNG-3559。
基本上,如果仅从父pom运行mvn test
,则项目A的测试类不可见。一旦创建了包A的jar(在package
阶段),它们就可见了。