多模块项目 - 组装插件

时间:2009-11-14 21:04:29

标签: maven-2 maven-plugin

我正在使用Maven 2.0.9构建一个多模块项目。我在父pom中定义了程序集插件。我可以使用

构建我的程序集
mvn install assembly:assembly

此命令运行测试两次,一次在安装阶段,另一次在组装期间。我尝试了汇编:单一,但它会抛出一个错误。任何帮助我在没有运行测试两次的情况下构建程序集都非常感激。

3 个答案:

答案 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