2009-11-14 62 views
6

我正在使用Maven 2.0.9构建多模块项目。我已经在我父母的团队中定义了程序集插件。我可以使用我的组件构建我的组件多模块项目 - 汇编插件

mvn install assembly:assembly 

此命令运行两次测试,一次在安装阶段和另一次在组装过程中。我试过汇编:单一但它会引发错误。非常感谢任何帮助让我的程序集生成而不运行两次测试。

+0

请提供错误。没有它,很难说什么。 – 2009-11-15 10:31:45

回答

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> 
+0

嗨,Pascal Thivent:你的回答帮助我理解了mvn安装程序集:程序集和mvn程序集:程序集之间的区别。你能帮我理解mvn assembly:assembly和mvn package assembly:assembly之间的区别吗? – Patricia 2015-10-17 17:23:56

1

我认为错误消息是误导性的,它表明你需要运行作为程序集插件的调用本身,SAME maven调用中的“包”阶段。

你试过“mvn package assembly:assembly”还是“mvn install assembly assembly”?

适用于Linux下的我,JDK 1.6.0_16,Maven 2.2.1,Assembly Plugin 2.2-beta-4。

+0

上面提到的POM片段(绑定程序集插件到'ackage阶段)应该同样工作,请记住,那么您不需要在命令行上显式调用程序集插件。 'mvn package'(或'mvn install')也会自动创建程序集。不知道我是否曾经以这种方式使用过程序集插件。我通常明确地调用它,因为我经常不关心正在生成的程序集。 – JavaGuy 2010-01-21 22:17:58

+0

我把程序集插件打包或安装,ram mvn install或者mvn程序包。还是一样的错误。这只发生在多模块项目中。 – user209947 2010-01-24 16:19:50