Java maven assembly插件在这种情况下有效吗
我有以下项目结构:Java maven assembly插件在这种情况下有效吗,java,maven-2,junit,maven-assembly-plugin,Java,Maven 2,Junit,Maven Assembly Plugin,我有以下项目结构: 项目“父项目”没有任何源文件,其子项目为“junit包装器”、“child1测试”和“child2测试” 子项目“junit包装器”在src/main/java中只有java源代码,它基本上是为了将所有依赖项和二进制文件包装在层次结构“父项目”下而创建的 子项目“child1-test”和“child2-test”没有源文件,只包含子项目“child1-env”和“child2-env” 子项目“child1 env”和“child2 env”在src/test/java中只
<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>
maven汇编插件
2.2.1
组装
包裹
单一的
带有依赖项的jar
不需要程序集描述符(assembly.xml),因为maven程序集插件中已经有了带有依赖项的
jar
描述符。请注意,您不应在包
阶段之前执行程序集插件。否则,maven模块的代码将不会打包到程序集中 要创建包含测试类的jar,最好的解决方案是使用maven jar插件,如下所示:
<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>
org.apache.maven.plugins
maven jar插件
2.2
试验罐
在其他模块中,您可以通过以下依赖项使用测试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>
...
com.myco.app
福
1.0-快照
试验罐
测试
...
Do您想在其他模块/项目中重用junit包装中的类吗?另外,如果您打算将来自child1 env和child2 env的测试包含在超级jar中,您必须将它们声明为依赖项,并且必须确保您是从这两个包中的测试代码构建jar。