Maven Assembly Plugin,上传右侧zip文件

时间:2012-01-04 22:02:25

标签: maven upload

我有以下内容,我需要生成2个zip文件,最后将它们压缩到另一个zip文件:

        <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>assembly1</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly1</finalName>
                                <descriptors>
                                  <descriptor>assembly1.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                        <execution>
                            <id>assembly2</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly2</finalName>
                                <descriptors>
                                  <descriptor>assembly2.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                        <execution>
                            <id>assembly3</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <finalName>assembly3</finalName>
                                <descriptors>
                                  <descriptor>assembly3.xml</descriptor>
                                </descriptors>
                                <attach>true</attach>
                            </configuration>
                        </execution>
                    </executions>
    </plugin>

我要做的是创建2个名为assembly1.zip和assembly2.zip的zip文件,最后将这2个zip文件压缩到assembly3.zip

在目标文件夹下,我看到创建的zip文件,在assembly3.zip中,我也看到了assembly1和2个zip文件。

当Maven上传到本地仓库时,它会随机选择一个zip文件,我想要上传的是assembly3.zip文件。

这就是我在Maven日志中看到的:

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly1) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly1.xml
[INFO] Building zip: C:\MyTest\target\assembly1.zip

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly2) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly2.xml
[INFO] Building zip: C:\MyTest\target\assembly2.zip
**[WARNING] Artifact com.test:MyTestWar:zip:1.0.0.11-SNAPSHOT already attached to project, ignoring duplicate**

[INFO] --- maven-assembly-plugin:2.2-beta-5:single (assembly3) @ MyTestWar ---
[INFO] Reading assembly descriptor: assembly3.xml
[INFO] Building zip: C:\MyTest\target\assembly3.zip
**[WARNING] Artifact com.test:MyTestWar:zip:1.0.0.11-SNAPSHOT already attached to project, ignoring duplicate**



**[INFO] Installing C:\MyTest\target\assembly1.zip to C:\Users\myUserName\.m2\repository\
com\test\MyTestWar\1.0.0.11-SNAPSHOT\MyTestWar-1.0.0.11-SNAPSHOT.zip**

这是我的Maven安装插件,我尝试上传Assembly3.zip

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>install</phase>
                        <id>zip-upload</id>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                        <configuration>
                            <packaging>zip</packaging>
                            <artifactId>Assembly3</artifactId>
                            <groupId>${project.groupId}</groupId>
                            <version>${project.version}</version>
                            <file>${project.build.directory}/assembly3.zip</file>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

虽然提到它必须上传assembly3.zip,但出于某种原因,Maven正在拿起assembly1.zip。

我也对这些警告感兴趣。

任何有关摆脱警告以及上传Assembly3.zip的帮助都非常受欢迎。

由于

1 个答案:

答案 0 :(得分:2)

使用

<attach>true</attach>

仅适用于您要上传的程序集。对于其他两个执行,省略此选项。

至于为什么它选择随机组件而不是上传所有三个,我猜你的assembly descriptors中的程序集ID都是一样的。错误消息

  

[警告]工件com.test:MyTestWar:zip:1.0.0.11-SNAPSHOT已经附加到项目中,忽略重复

暗示这一点。即使您已经为zip提供了不同的 finalName 值,它们仍然会从程序集描述符中的ID继承分类器。