maven:将依赖关系部署到备用存储库

时间:2011-12-14 18:52:14

标签: deployment maven-2 repository

我尝试使用我们的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存储库设置似乎不允许这样做。如果我读错了,请有人指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

您应该重新考虑Nexus Pro staging suite似乎限制您的原因。

“关闭”暂存仓库的想法是防止对传递给QA进行认证的一组工件的任何进一步更改。

我会推荐以下解决方案之一:

  • 剪切较小的修补程序版本,旨在应用于QA中当前版本的顶部。
  • 如果您的组件完全分开,请考虑将它们作为独立版本的组件发布。

更新

Artifactory有一个alternative way来管理工件的暂存和推广,使用标记。细节对我来说并不完全清楚,但是这个解决方案可能会给你提供灵活性。

相关问题