2012-05-18 77 views
0

如下我添加了一些在我的模塊之一的POM版本號的插件沒有更新罐子行家在本地回購與新版本號

<plugin> 

    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <archive> 
     <manifest> 
      <addDefaultImplementationEntries>true</addDefaultImplementationEntries> 
     </manifest> 
     <manifestEntries> 
      <Implementation-Build>${buildNumber}</Implementation-Build> 
     </manifestEntries> 
     </archive> 
     <outputDirectory>target/${buildNumber}</outputDirectory> 
    </configuration> 
</plugin> 

構建工作正常,內部目標是創建的JAR作爲目標// myjar這一-的.jar (其中:文件夾./和罐子也使用jar插件作爲獲取buildnumber追加到它的版本名稱版本是1.0假設並且buildnumber隨着每個構建開始wi而遞增th 1) 但是,在本地存儲庫中,jar會以包// myjar-.jar的形式存儲,即buildnumber不會被添加到那裏。 有沒有辦法做到這一點? 謝謝。

回答

2

如果我正確理解你的問題,一切似乎都很好(目標目錄中的工件,清單等),除非本地存儲庫中的文件名不是你想要的,對嗎?

如果是這樣,並且如果我沒有記錯的話,那應該是正確的。本地/遠程存儲庫中的工件文件名是根據工件名稱,版本號,修飾符和限定符以及快照時的時間戳生成的。它與目標目錄中的輸出文件名無關。

+0

謝謝阿德里安,如果是這樣,那麼我怎麼做我指定一個神器作爲依賴到另一個與新的內部版本號如果這不是存儲在我的本地回購?例如,如果在構建jar A時生成的構件是A-1.0-1,那麼因爲在本地回購中它存儲爲A-1.0,所以我不能指定A-1.0-1作爲依賴關係。那麼這個插件的用途是什麼呢。 。它僅僅是爲了創造最後的戰爭而不是個人的罐子?謝謝。 – pranay

+0

你應該把你當地回購的神器看作是「虛擬」沒有名字。 Artifact僅由GroupID + ArtifactID +版本+ Modifier/Qualifier定位。所有這些與文件名無關。插件的使用完全取決於您的使用情況,我相信大多數人使用它來將內部版本號放入一些資源或META-INF中。爲了達到目標,你需要將內部版本號作爲版本(或限定詞?)的一部分。我不推薦這樣的方法,因爲它不適用於現有的Maven。不過你可以看看Maven發佈插件來更新動態版本。 –