使用Maven和Jenkins分阶段部署快照工件

回答:

我们有几个相互依赖的多模块项目。所以像这样:

他们有单独的源代码控制存储库,可以说, 和 组件内的子模块正在使用来自

子模块的捆绑包。所有项目都是基于OSGI的多模块Maven项目。它们全部都有一个服务器部分和一个来源GUI部分(Eclipse RAP +

RCP)。因此,这最终针对所有这些多模块项目以三步为 基础的Maven构建(因为Tycho构建不能与普通的旧Maven构建混合使用)

  • 构建服务器部分
  • 建立RAP GUI零件
  • 构建RCP GUI部件

最后是一个 最终产品 多模块Maven项目(我们称其为 ),它使用 , 和

。项目 版本号与其他三个版本号不同的其他版本号相同。

我们使用Jenkins构建整个过程,而作业依赖于依赖关系树而相互触发。该公司决定使用快照在3个框架项目开发人员和

开发人员之间获取更直接,更快速的反馈。这可能是一个不错的主意,但是存在很大的问题。

如果建筑物链中的东西坏了,比快照库包含的快照 , 和 ,不能一起工作。这样,

的开发人员就必须等待有效的快照集(否则他们甚至无法编译一段时间)。另一个问题是,在构建期间,快照集也不一致。

回答:

对于 , 和 ,Jenkins中有一个明确的 最终任务 。如果完成,则快照组必须正常工作,因此

团队可以使用它。

我的想法是简单地将作业更改为仅 安装 而不 部署 。然后最后,我可以在本地Maven存储库中查找构建的快照,并通过脚本进行部署。

  • Maven有一些暂存概念(可能仅适用于Nexus pro)。它与快照有关吗?

任何想法都欢迎。但是我不能改变使用快照的事实。因此,说服我使用发行版和快照没有任何用处。

回答:

回答:

我找到了一个不错的解决方法。采取的步骤:

  1. 构建步骤必须使用 参数部署到临时文件夹,而不是普通的目标存储库(请参阅http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html)

mvn deploy -DaltDeploymentRepository = stagingFolder :: default :: file:///

c:/ mytempfolder

  1. 工件将收集在该文件夹中。您甚至可以毫无问题地恢复构建。您可以覆盖工件(但是我不推荐这样做)

  2. 完成所有构建步骤后,您必须运行以下命令(请参阅http://mojo.codehaus.org/wagon-maven-plugin/copy-mojo.html)。这将上传临时存储在文件夹中的所有工件:

mvn org.codehaus.mojo:wagon-maven-plugin:copy -Dwagon.source = file:/// c:/

mytempfolder -Dwagon.target =

http://somerepository.com/repositories/snapshots

-Dwagon.targetId = idreferredinsettingsxmltogetauthorization

回答:

旅行目标应在没有pom文件的文件夹中运行(因此必须在没有项目的情况下运行)。否则, 参数会出现奇怪的错误。

回答:

  1. 构建步骤应该使用相同的本地存储库运行,因为如果这些步骤需要其他工件生成的工件,则他们可以在本地存储库中找到它。
  2. 该解决方案不读取POM来获取应将工件上载到的存储库。今天将其连接到wagon命令中。但是我现在可以忍受它了:)

以上是 使用Maven和Jenkins分阶段部署快照工件 的全部内容, 来源链接: utcz.com/qa/401277.html

回到顶部