我尝试使用我们的maven构建做一些构建促销设置。我自己这样做,因为我发现的存储库管理员不太合适。
我希望这个过程能够像这样工作:
1.开发将ear和jar文件部署到'dev'存储库
2.构建团队运行构建来获取这些文件,添加QA特定的配置模板,将结果打包到zip文件中
3.使用<altDeploymentRepository>
选项,构建团队将zip文件部署到QA存储库
4.将依赖的ear和jar文件部署到QA存储库
5. QA周期完成后,构建团队运行构建以下载(现已测试)jar和ear文件,添加preprod特定配置模板,并将结果打包到zip文件中
6.使用<altDeploymentRepository>
选项,构建团队将zip文件部署到Preprod存储库
...并再次重复该过程以进行生产推广
一切正常,直到第4步。似乎没有办法告诉maven将依赖项部署到备用位置。
所以最终的结果是如何在存储库之间复制依赖 ear和jar文件,并且这样做是为了使版本信息完整无缺,我可以针对它们。
通过maven配置文件切换源和目标存储库:
<profile>
<id>qa</id>
<distributionManagement>
<repository>
<id>prddeploy</id>
<name>build server repository</name>
<url>${repoHost}/dev_repo</url>
</repository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<altDeploymentRepository>qadeploy::default::${repoHost}/qa_repo</altDeploymentRepository>
</configuration>
</plugin>
</plugins>
</build>
</profile>
如果'dev'配置文件是默认配置文件,因此开发不需要特殊步骤,它们只运行mvn deploy
。构建团队运行:mvn deploy -P qa
以启动qa部署周期。
我已尝试将nexus和artifactory用作存储库管理器。我使用哪一个似乎并不重要,但如果一个或另一个将使这个过程更容易,两者都可用。
我知道nexus在其专业版中提供了构建升级功能,但根据文档,关键的交易破坏者是分阶段的存储库必须是closed
才能使用它们。我们的软件有许多不同的组件,在修复QA中的错误时,我们需要能够仅重新部署已更改的组件,而不是整个系统。 nexus staged存储库设置似乎不允许这样做。如果我读错了,请有人指出我正确的方向。
答案 0 :(得分:0)
您应该重新考虑Nexus Pro staging suite似乎限制您的原因。
“关闭”暂存仓库的想法是防止对传递给QA进行认证的一组工件的任何进一步更改。
我会推荐以下解决方案之一:
Artifactory有一个alternative way来管理工件的暂存和推广,使用标记。细节对我来说并不完全清楚,但是这个解决方案可能会给你提供灵活性。