2012-01-04 26 views
3

我有類似如下,我需要生成2個zip文件,最後壓縮它們備份到另一個zip文件:的Maven Assembly插件,上傳正確的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是高度讚賞。

感謝

回答

2

使用

<attach>true</attach> 

只爲你要上傳的組件。對於另外兩次執行,省略此選項。

至於爲什麼它會選擇一個隨機裝配而不是上傳所有三個,我猜你的assembly descriptors中的裝配ID是一樣的。該錯誤消息

[警告]神器com.test:MyTestWar:郵編:1.0.0.11 - 快照已連接到項目,忽略重複這個

提示。即使您給出了不同的zip文件夾finalName值,它們仍然繼承了組件描述符中ID的分類器。