2013-06-19 66 views
0

我想知道是否有可能将maven-metadata.xml文件作为maven depennedency。我想要实现的是从nexus的maven-metadata.xml获取内部版本号。nexus将maven-metadata.xml作为依赖关系

<metadata modelVersion="1.1.0"> 
    <groupId>group</groupId> 
    <artifactId>artefact</artifactId> 
    <version>version</version> 
    <versioning> 
    <snapshot> 
     <timestamp>20130619.091047</timestamp> 
     <buildNumber>2</buildNumber> <!--WHAT I'M TRYING TO GET--> 
    </snapshot> 
    <lastUpdated>20130619091047</lastUpdated> 
    <snapshotVersions> 
    <snapshotVersion> 
     <extension>rpm</extension> 
     <value>value</value> 
     <updated>20130619091047</updated> 
    </snapshotVersion> 
    <snapshotVersion> 
     <extension>pom</extension> 
     <value>value</value> 
     <updated>20130619091047</updated> 
    </snapshotVersion> 
    </snapshotVersions> 
    </versioning> 
</metadata> 

p.s.是的,我知道它可以通过Nexus REST API检索,但我对上面提供的特定场景感兴趣。

+0

我不这么认为。元数据文件中的内部版本号只是一个迭代器,并不是真正的CI服务器等内部版本号。你究竟想实现什么? –

+0

@ManfredMoser,这有点棘手:)事情是,我开发的项目是通过RPM提供的,安装完成后,不可能将安装在系统上的rpm和联结中的工件关联起来。这就是为什么我想提供RPM定义中的联系编号。 –

回答

1

您在maven-metadata xml中看到的元数据迭代器不是来自CI服务器的内部版本号,因此不会让您在代码,ci服务器构建和部署之间创建您正在寻找的关联。

为了做到这一点,解决您在评论中提到的问题,我想:

  • 构建与转Maven插件
  • 使用的版本号Maven插件或从CI服务器的一些参数填充属性在您的最终RPM文件
  • 必须在应用程序中的功能,可以显示属性文件

这样任何建造时间信息可CAPT在最终的工件中出现并在部署中可用。

此外,我会研究yum nexus插件,以将Maven repo公开给基于yum的部署机器。

如果您不使用Maven构建类似的方法,也可以使用任何其他构建工具来完成。