2011-04-25 330 views
2

我已經定義了maven assembly插件,並且已經設置了pom在「編譯」階段執行plugin(assembly.xml)。 assembly.xml - 它使用「dependencySet」獲取jar /文件,並用「fileSet」替換我的本地集合中的幾個文件。Maven assembly插件不會在編譯階段覆蓋文件

使用Maven assembly plugin 2.2 beta 2它會替換文件。 裝配插件的版本2.2或2.2.1, a)它表示「已添加,跳過」並且不覆蓋。 b)如果我在pom中將階段修改爲「生成資源」而不是「編譯」,它將顯示「已添加,跳過」消息並反正替換/覆蓋文件。

想知道,版本之間有什麼變化,以及爲什麼相變會使它工作,如果有人能夠解釋在「編譯」階段究竟發生了什麼(它不會被覆蓋),這將是有幫助的。 有沒有解決我的問題的方法? !

在此先感謝您的幫助

包括片段:

`<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2</version> 
    <executions> 
    <execution> 
     <id>create-install-image-layout</id> 
     <phase>compile</phase> 
     <goals> 
     <goal>directory-single</goal> 
     </goals> 
     <configuration> 
     <descriptors> 
      <descriptor>src/main/assembly/assembly.xml</descriptor>            
     </descriptors>          
     <ignoreDirFormatExtensions>false</ignoreDirFormatExtensions> 
     </configuration> 
    </execution> 
    </executions> 
</plugin>` 
+0

我不明白的是:「我用我的本地設置替換了幾個文件使用」fileSet「...」你要更換什麼?你不使用依賴關係嗎?你想達到什麼目的? – khmarbaise 2011-12-08 13:33:15

回答

0

你執行什麼目標?你是否首先執行清理?它可能會跳過編譯階段,因爲代碼已經編譯完成。

+0

我使用'目錄單一'的目標。 – Irene 2011-04-27 05:16:59

1

目標目錄-single被標記爲已棄用。此外,maven-assembly-plugin的最新版本是2.2.2而不是2.2。此外,爲了任何目的創建一個檔案,正確的階段將是包裝階段,而不是彙編源代碼的編譯階段。