我试图在上面显示的建议问题中找到这个问题的答案,并通过谷歌,但我找不到解决方案 .

我有一个maven项目,在构建时,激活正在构建的平台的正确配置文件 .

Windows配置文件,下载源代码并使用分类器将Windows二进制文件构建到工件中:

  • myproj-version-SNAPSHOT-w64.jar

linux配置文件,下载源代码并使用分类器将Linux二进制文件构建到工件中:

  • myproj-version-SNAPSHOT-lx86_64.jar

它还构建了java代码工件:

  • myproj-version-SNAPSHOT.jar

我已将其设置为Jenkins 2中的多配置作业,其中轴仅包含Linux和Windows节点的标签 . 这可以正确构建,并将它们部署到Nexus中 .

但是,Release Maven Project选项不能作为此选项的选项,我不确定如何发布二进制文件 . 有了Maven Jenkins的工作,它显然可以选择 .

如何在Jenkins 2中设置我的多配置作业,以进行发布 . 我想它需要做以下事情:

在主节点上:

  • 清理工作区然后拉出git存储库

  • 将POM更新到发布版本(strip -SNAPSHOT)

  • 推送更改并标记发布(myproj-version)

  • 触发轴节点上的构建

在Windows节点上:

  • 清理工作区然后拉出git存储库 - 这将是标记的发布版本

  • 构建并部署1个工件

在Linux节点上:

  • 清理工作区然后拉出git存储库 - 这将是标记的发布版本

  • 构建并部署2个工件

在主节点上:

  • 更新下一个开发版本的POM(版本1并添加-SNAPSHOT)

  • 将上述更改推送到存储库

Update :现在Nexus也存在问题 . Windows节点首先完成,并部署其1个工件 . linux节点完成,并部署其2个工件 . 在短时间内,所有3个工件(共享相同的组和工件ID)都存在 . 然后删除Windows工件 .

Update 2 :Nexus删除Windows工件的原因是maven发布的maven-metadata.xml与工件 . 从windows发布的那个包含1个工件和pom . linux包含其他2个工件,并覆盖第一个工件 . Nexus因此清除了它认为不再构建/需要的SNAPSHOT工件 .

摘要

现在有两个问题:

  • 如何合并来自2个节点的maven-metadata.xml

  • 如何发布工件

谢谢,