我有以下项目结构:
我想通过构建父pom.xml
来构建一个超级jar(在junit-wrapper中)我希望通过使用maven-assembly-plugin可以实现这一点,但不知道如何在pom.xml中配置它。什么应该是我的pom.xml或assembly.xml(使用插件)条目,以确保实现这一目标?
请建议。
感谢。
答案 0 :(得分:2)
要创建一个包含测试类的jar,最好的解决方案是使用像这样的maven-jar-plugin:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
在其他模块中,您可以通过以下依赖关系使用test-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>
答案 1 :(得分:0)
当您将此配置包含在junit-wrapper
的pom文件中时,您将获得“超级jar”:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
汇编描述符(assembly.xml)不是必需的,因为jar-with-dependencies
描述符已在maven-assembly-plugin中可用。请注意,您不应在package
阶段之前执行程序集插件。否则,maven模块的代码将无法打包到您的程序集中。