2011-05-31 113 views
2

我想打電話如何使用maven打包特定版本?

mvn clean install -Dsomeproperty=1.2.3-20110526-1836 

得到的

artifact-1.2.3-20110526-1836.jar 

代替

artifact-1.2.3-SNAPSHOT.jar 

我如何傳遞時間戳到Maven?

+1

你不應該只是把那個版本('1.2.3-20110526-1836')成pom.xml? – 2011-05-31 11:51:09

+0

爲什麼你想要做這樣的事情?如果要防止從遠程存儲庫下載工件,請使用'--offline'開關。 – teodozjan 2011-05-31 11:57:05

+0

我們有一個生成時間戳版本的每晚構建,我想用我的本地更改覆蓋它們。這是一個* BIG *版本,所以我只能隨時玩一些屬性。我不想改變體力活動。 – Bastl 2011-05-31 13:10:12

回答

1

下神器的pom.xml設置似乎在做你想要什麼:

<groupId>testgroup</groupId> 
<artifactId>testartifact</artifactId> 
<version>${someproperty}</version> 

現在,如果你執行「MVN乾淨安裝-Dsomeproperty = 1.1.timestamp」,jar文件出品還包含時間戳名稱。

我不確定這是不是您要找的。

編輯

自pom文件以來的另一種解決方案無法更改。

正常執行「mvn clean install」命令。這會生成一個jar文件,如artifact-1.2.3-SNAPSHOT.jar。

再次安裝此文件 - 這次用「mvn install:install-file -Dfile = artifact-1.2.3-SNAPSHOT.jar -DgroupId = testgroup -DartifactId = testartifact -Dversion = 1.2.3-123456-1234 - Dpackaging =罐子。這將安裝神器1.2.3-123456-1234.jar在你的本地庫

+0

是的,接近。但正如我所說,我不想(不能)編輯pom.xml - 它由一個特殊的團隊維護。我想設置-Dproject.version = 1.2.3-123456-1234,但那不起作用。我如何正確地做到這一點? – Bastl 2011-05-31 14:03:19

+1

正確。沒有注意到你對pom性質的要求。那麼我建議另一種方法。通常執行「mvn clean install」命令。這會生成一個jar文件,如artifact-1.2.3-SNAPSHOT.jar。現在,再次安裝此文件 - 這次使用「mvn install:install-file -Dfile = artifact-1.2.3-SNAPSHOT.jar -DgroupId = testgroup -DartifactId = testartifact -Dversion = 1.2.3-123456-1234 -Dpackaging = jar。這會將artifact-1.2.3-123456-1234.jar安裝在您的本地存儲庫中。 – Vijay 2011-05-31 16:10:04

0

這個最快的黑客是運行

 mvn clean install --offline 

這將防止從加載每晚構建遠程回購

您也可以使用settings.xml