Maven 3.0.3包不起作用

时间:2013-07-15 11:05:57

标签: maven-3

您好我有一个mvn子模块,其唯一目的是从各种其他模块中收集jar并创建一个包含所有依赖项和配置的zip文件。

<parent>
    <artifactId>foo</artifactId>
    <groupId>com.foo</groupId>
    <version>0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>dist</artifactId>
<packaging>pom</packaging>

<name>dist</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>assembly.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>generate zip</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

现在,如果我使用mvn assembly:assembly,则会创建所需的zip文件。但是,如果我使用mvn package它没有做任何事情,即它没有创建zip文件。只需给出以下输出并完成。

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building dist 0.1
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.120s
[INFO] Finished at: Mon Jul 15 16:34:09 IST 2013
[INFO] Final Memory: 5M/92M
[INFO] ------------------------------------------------------------------------

知道为什么这不起作用的任何想法。我在这里失踪的是什么 感谢您提前获得所有帮助。

2 个答案:

答案 0 :(得分:2)

正如罗伯特提到的,你必须从插件管理中移出你的插件。试试这样的事情

<build>
   <plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
              <descriptors>
                  <descriptor>assembly.xml</descriptor>
              </descriptors>
          </configuration>
          <executions>
               <execution>
                  <id>generate zip</id>
                  <phase>package</phase>
                  <goals>
                     <goal>single</goal>
                  </goals>
                </execution>
           </executions>
        </plugin>
    </plugins>
</build>

希望这有帮助

答案 1 :(得分:1)

这不是pluginManagement的工作原理。您应该至少定义为标准构建插件。 在生命周期中,Maven将使用其默认值,并通过build-plugins查看是否有绑定到某个阶段的插件。如果它找到了一个插件,它将查看相同插件的pluginManagement以查看是否有其他配置。