gpt4 book ai didi

maven - 使用maven发布流程跨平台同步 Artifact 版本

转载 作者:行者123 更新时间:2023-12-02 17:59:59 24 4
gpt4 key购买 nike

我有一个应该为多个目标平台构建的 Artifact :

  • Linux x86
  • Windows x86
  • ARM11

不幸的是,由于缺乏交叉编译器,不可能一次性创建该 Artifact 的所有版本。

换句话说,目标是在存储库中拥有这样的东西

  • artifact-1.0.0-linux.zip
  • artifact-1.0.0-windows.zip
  • artifact-1.0.0-arm11.zip
  • artifact-1.0.1-linux.zip
  • artifact-1.0.1-windows.zip
  • artifact-1.0.1-arm11.zip
  • ...

请注意,版本是同步的。如何实现这一点?

问题是,发布过程会在每次构建后升级 pom.xml 的版本。因此,通过在各种平台上连续构建,我可以实现

  • artifact-1.0.0-linux.zip
  • artifact-1.0.1-windows.zip
  • artifact-1.0.2-arm11.zip
  • artifact-1.0.3-linux.zip
  • artifact-1.0.4-windows.zip
  • artifact-1.0.5-arm11.zip
  • ...

但这不是我想要的。

我可以

  1. 在 Linux 上运行

    mvn 发布:准备发布:执行 -DpushChanges=false

    (pushChanges 设置为 false 发布不会增加 SCM 中的版本号)

  2. 然后在 Windows 上运行

    mvn 发布:准备发布:执行

    (这会增加版本号)

但是,以正确的顺序在各个平台上触发发布流程的责任就落在了我身上。 maven 有办法帮助我解决这个问题吗?

你有什么建议吗?

谢谢

<小时/>PS。请注意,这不是一个关于如何组织成模块的问题。这是关于如何同步单个 Artifact 在多个平台上的发布过程。

最佳答案

您找到解决方案了吗?很高兴知道我不是唯一一个与 Maven 抗争的人:-)

无论如何,

您是否可以将发布版本部署到 Nexus?我想,你可以这样做:

1 - 从 Windows 计算机执行“mvn release:prepare release:perform” - 应该将artifact-1.0.1-windows.zip 放入nexus。

2 - 从源代码管理中 checkout artifact-1.0.1标签

3 - 从linux和arm11(无论是什么:P)执行“mvn部署” - 这也应该将-linux.zip和-arm11.zip放入nexus中。

不过,我相信根据 Nexus 的配置方式,它不会让您使用相同的 GAV 重新部署任何内容(即使分类器不同)

关于maven - 使用maven发布流程跨平台同步 Artifact 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10028361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com