2

您好我有一个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] ------------------------------------------------------------------------

关于为什么这不起作用的任何想法。我在这里想念什么。感谢您提前提供的所有帮助。

4

2 回答 2

2

As Robert mentioned you have to move out your plugin from plugin-management. Try something like this

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

Hope this helps

于 2013-07-16T09:28:41.583 回答
1

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

于 2013-07-15T17:51:01.180 回答