我正在使用Maven 2.0.9构建一个多模块项目。我在父pom中定义了程序集插件。我可以使用
构建我的程序集mvn install assembly:assembly
此命令运行测试两次,一次在安装阶段,另一次在组装期间。我尝试了汇编:单一,但它会抛出一个错误。任何帮助我在没有运行测试两次的情况下构建程序集都非常感激。
答案 0 :(得分:7)
调用程序集mojo将导致Maven使用正常生命周期构建项目,直到package
阶段。所以,当你运行:
mvn install assembly:assembly
你实际上是在告诉maven两次运行一些东西,这包括测试阶段,你可以在默认生命周期的documentation中看到。
为避免这种情况,请考虑仅运行:
mvn assembly:assembly
或者在项目的构建生命周期中绑定插件:
<project>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
...
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- append to the packaging phase. -->
<goals>
<goal>single</goal> <!-- goals == mojos -->
</goals>
</execution>
</executions>
</plugin>
...
</project>
答案 1 :(得分:1)
我认为错误消息具有误导性,它建议您需要在SAME maven调用中运行“package”阶段作为程序集插件的调用本身。
您是否尝试过“mvn package assembly:assembly”或“mvn install assembly:assembly”?
适用于Linux,JDK 1.6.0_16,Maven 2.2.1,Assembly Plugin 2.2-beta-4。
答案 2 :(得分:1)
您需要为多模块项目中的装配创建单独的项目。 那个单独的模块只是汇编 - 它将具有依赖性:应该添加到结果汇编中的兄弟姐妹。
请阅读这篇文章: http://www.sonatype.com/books/mvnref-book/reference/assemblies-sect-best-practices.html