2016-11-17 80 views
1

我嘗試包括git的承諾散在工件名稱在CI方案快照版本之間的區別。 的git的散列成功包含在我的項目的目標/文件夾,但在最後一步行家它複製到神器我HOME/.m2目錄/文件夾的存儲庫並更改名稱的artifactId-VERSION-mta.jar。繼續Maven的安裝,插件的Maven工件名稱(默認安裝)

我怎樣才能保持文件名從目標/文件夾,包括提交哈希?

我看看Maven的安裝,插件,卻找不到一個「finalName」屬性或類似這樣的東西。

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ projectname --- 
[INFO] Installing PROJECTDIR/pom.xml to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1.pom 
[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-mta.jar 

我想最後一行是

[INFO] Installing PROJECTDIR/target/projectname-1.0.1-d054c42-mta.jar to ~/.m2/repository/GroupIdDir/projectname/1.0.1/projectname-1.0.1-d054c42-mta.jar 

Controlling maven final name of jar artifact ,因爲它改變了輸出文件夾不解決問題。

+0

你不能做到這一點。本地存儲庫中的名稱遵循'artifacId-version(-classifier).type'約定,並且不能更改它。請參閱http://stackoverflow.com/questions/17024803/version-in-jar-name – Tunaki

+0

我可以將提交散列設置爲分類器嗎? –

+0

您_could_但這意味着它的Maven座標將每有一個新的提交時間而改變,所以每個項目都依賴於它需要改變''聲明_for每個commit_。請參閱http://stackoverflow.com/questions/8354201/how-do-i-build-only-one-jar-file-with-classifier。這聽起來像是你想從頭開始重建Maven的SNAPSHOT機制。爲什麼不將版本設爲'1.0.1-SNAPSHOT'? – Tunaki

回答

0

它很可能是因爲存儲庫佈局。

庫佈局定義

這是在Maven的2.x的可用存儲庫和 及其相關Ant任務的最終佈局。

對於主構件: /$groupId[0]/../${groupId[n]/$artifactId/$version/$artifactId-$version.$extension

對於次級僞影: /$的groupId [0] /../$的groupId [N]/$的artifactId/$版本/ $ artifactId- $版本 - $分類。$擴展

https://cwiki.apache.org/confluence/display/MAVENOLD/Repository+Layout+-+Final

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效 –