2011-03-04 106 views
3

我想告訴nexus給與部署快照相同的內部版本號作爲詹金斯分配到版本。同步nexus內部版本號與哈德森/詹金斯內部編號

澄清:

<?xml version="1.0" encoding="UTF-8"?> 
<metadata modelVersion="1.1.0"> 
    <groupId>com.bmw.psdz</groupId> 
    <artifactId>psdz-api</artifactId> 
    <version>4.3.3-SNAPSHOT</version> 
    <versioning> 
    <snapshot> 
     <timestamp>20110304.122623</timestamp> 
     <buildNumber>4</buildNumber> <!-- this should be same build number as jenkins assigned to the build --> 
    </snapshot> 
    <lastUpdated>20110304122623</lastUpdated> 
    <snapshotVersions> 
     <snapshotVersion> 
     <extension>jar</extension> 
     <value>4.3.3-20110304.122623-4</value> 
     <updated>20110304122623</updated> 
     </snapshotVersion> 
     <snapshotVersion> 
     <extension>pom</extension> 
     <value>4.3.3-20110304.122623-4</value> 
     <updated>20110304122623</updated> 
     </snapshotVersion> 
    </snapshotVersions> 
    </versioning> 
</metadata> 

這可能嗎?

回答

3

在Hudson/Jenkins中,您可以使用${BUILD_NUMBER}作爲構建中的參數。把它傳遞給你的maven版本,比如mvn clean package -Dbuild.number=${BUILD_NUMBER},或者按照你的喜好在後期製作步驟中使用它。

這可能會幫助你找到答案,但我不知道Nexus提供了一個完整的解決方案。

+0

嗨,你解決了這個問題嗎?我有類似的問題... – Adam 2018-02-27 12:16:53

-1

如果是我,我會考慮在maven \ nexus中使用已發佈的artefact版本,如果我關心版本信息的話。我通常不會關心(a \或想要)區分不同的SNAPSHOT版本。

它可以幫助您使用maven-release-plugin創建版本作爲構建的一部分嗎?這可能包括Hudson內部版本號和/或VCS修訂版本號作爲版本控制方案的一部分。

+0

在構建最終版本之前,我們使用快照來驗證錯誤修正。我可以爲此創建x.y.z-RC1等版本,但這比僅使用快照更復雜。 maven版本比快照版本花費更多的時間,因爲由於maven-release-plugin的特性,所有東西都會構建兩次。 – 2011-03-14 13:58:13

+1

嗨,丹尼爾。是的,maven-release-plugin可能有點麻煩。看看這個博客,它提供了一種替代方法 - http://www.dzone.com/links/r/maven_releases_on_steroids_adios_release_plugin.html。它可以讓你的版本便宜,但也有一些限制... – 2011-03-16 05:48:25

+0

另外,你不能只是做一個「mvn部署」,並通過傳入作爲參數在版本中包含內部版本號(作爲SNAPSHOT如果你更喜歡)。 – 2011-03-16 05:54:22