我们正在使用 Puppet 和 mCollective 进行服务器部署。对于我们的 dev 和测试环境,我们将工件(从两个不同的分支)发布到相同的nexus快照存储库(我们使用maven classifier
来区分开发和测试工件之间)。工件细节如下:
开发神器
<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 dev工件是在21-July-2015 1PM GMT
创建的,测试工件是在21-July-2015 2PM GMT
创建的。在服务器上,如果我们想要进行开发部署,mCollective代理会从nexus repo下载测试工件(即使在我们在puppet配置中提供分类器dev
之后)。
我看到一个脚本download-artifact-from-nexus.sh
我相信用来从nexus repo下载工件。此脚本使用Nexus REST API下载工件。我不知道这些REST API,但我觉得这个脚本不使用maven-metadata.xml
,它明确地提到了基于分类器的最新工件。我是puppet / mCollective的新手,不知道如何解决这个问题。感谢有人能提供一些帮助。