我们使用Puppet和mCollective进行服务器部署。对于我们的开发和测试环境,我们将工件(来自两个不同的分支)发布到同一个 nexus 快照存储库(我们使用 mavenclassifier
来区分开发和测试工件)。工件详细信息如下所示:
开发神器
<groupId>my.group</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>dev</classifier>
测试工件
<groupId>my.group</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>test</classifier>
这些工件是通过两个 Jenkins 作业发布的。对于 Puppet/mCollective,我们使用LATEST
它作为版本;但是,由于某种原因,它在确定最新的时会忽略分类器。我的意思是,让我们假设在 nexus 快照 repo 中,开发工件是在创建的,21-July-2015 1PM GMT
而测试工件是在创建的21-July-2015 2PM GMT
。在服务器上,如果我们想要进行开发部署,mCollective 代理会从 nexus 存储库下载测试工件(即使我们dev
在 puppet 配置中提供了分类器)。
我看到了一个脚本download-artifact-from-nexus.sh
,我认为该脚本用于从 nexus repo 下载工件。此脚本使用 Nexus REST API 下载工件。我不知道这些 REST API,但我觉得这个脚本没有使用maven-metadata.xml
清楚地提到哪个工件是最新的基于分类器的。我是 puppet/mCollective 的新手,不知道如何解决这个问题。感谢有人可以提供一些帮助。