2013-07-15 90 views
2

您好我有一個mvn子模塊,其唯一目的是從各種其他模塊收集jar,並創建一個具有所有依賴性和配置的zip文件。Maven 3.0.3包不能正常工作

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

任何想法爲什麼這是行不通的。我在這裏錯過了什麼。 感謝您提前提供的所有幫助。

+0

我不知道是什麼MVN包是應該做的。你做? – icedwater

+1

'package' - 獲取已編譯的代碼並將其打包爲可分發的格式,例如JAR。 (從[mvn站點]複製(http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Packaging):-)) – user2508922

+0

夠公平的,那麼什麼是「不工作」? (我的觀點是在這個問題上更具體一些:P) – icedwater

回答

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> 

希望這有助於

+0

謝謝......那有效。 – user2508922

1

這不是pluginManagement的工作原理。你至少應該定義爲一個標準的構建插件。 在生命週期中,Maven將使用其默認值,並通過構建插件查看是否有插件綁定到階段。如果它找到一個插件,它會查看插件管理的插件,看是否有一些額外的配置。

+0

感謝您的回覆,因爲我是maven的新手,我不知道該怎麼做,所以如果您能舉一個簡短的例子來說明我應該改變什麼,它會更有幫助。 – user2508922