【发布时间】:2011-12-14 18:52:14
【问题描述】:
我正在尝试使用我们的 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 将 依赖项 部署到备用位置。
所以最终的结果是我如何在存储库之间复制 dependent 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>
“开发”配置文件是默认配置,因此开发不需要特殊步骤,它们只需运行 mvn deploy。构建团队运行:mvn deploy -P qa 以启动 qa 部署周期。
我已经尝试使用 nexus 和 artifactory 作为存储库管理器。我使用哪一个似乎并不重要,但是如果一个或另一个会使这个过程更容易,两者都可用。
我知道 nexus 在其专业版中提供了构建升级功能,但根据文档,关键的交易破坏者是分阶段存储库必须是 closed 才能使用。我们的软件有许多不同的组件,当修复 QA 中的错误时,我们需要能够仅重新部署更改的组件,而不是整个系统。 nexus 分阶段存储库设置似乎不允许这样做。如果我读错了,请有人指出正确的方向。
【问题讨论】:
标签: deployment maven-2 repository