2011-03-04 211 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