gpt4 book ai didi

version-control - Maven 2 项目版本、依赖版本和永久发布

转载 作者:行者123 更新时间:2023-12-04 07:14:34 26 4
gpt4 key购买 nike

场景:系统有许多组件,每个组件都有自己的 POM。有一些很长的依赖链(A 依赖 B 依赖 C,等等)。我希望每个“非开发人员桌面”版本都成为潜在的发布候选版本——如果它通过了 QA,我们将在不重建的情况下部署它。换句话说,我从不想将 SNAPSHOT 版本作为我定期构建的一部分,只构建 1.3.0.5、1.3.0.6 等版本。我还想让开发人员能够同时处理多个组件。

为了阻止一些预期的建议:Maven Release Plugin 对我没有帮助......除非有一些神奇的方法我可以让我的依赖版本不是 POM 中的 SNAPSHOT 但仍然让开发人员在多个组件上工作一次?

我们应该如何管理我们所有 POM 中的项目和依赖版本?现在到处都是 SNAPSHOT,这使开发人员的事情变得简单(他们从 SNAPSHOT 开始,从不关心还要别的吗)。但它在部署时令人担忧(具有 SNAPSHOT 依赖项的构建定义不明确,并且不可重现)。

我想避免在构建时进行过多的操作,但现在我看不到任何解决方法。

假设我有组件 util、libj、libk、APP 和 UI,其依赖关系如下:
libj -> util(libj 依赖于 util)
libk -> 工具
APP -> libj
UI -> libj, libk

我有开发团队致力于 APP 和 UI,他们有时需要对某些依赖项(甚至是 util)进行更改/添加,以启用他们当前的工作。每个组件的 checkin POM 和依赖版本应该如何显示?

编辑:我更新了标题以引用 Maven 2 而不是 2.0,因为很明显我需要使用 2.1 或更好的版本才能最好地解决这个问题。

最佳答案

尝试对您的构建进行布局,以便将需要一起开发的模块一起发布。这将使 maven 发布插件为您完成大部分工作。

对于真正应该具有单独生命周期的依赖项...因为它们不经常更改或由多个项目共享,所以您希望以不同的方式处理它们。我这样做的方式是将依赖项保留在最后一个发布版本,直到更改实际上需要升级到下一个快照。这样当你去发布产品的时候,你会发现所有还可以发布的东西,只要跟着快照轨迹走就可以了。

我发现将外部依赖版本指定为项目顶部 pom 中的属性也很有帮助。这样可以很容易地一目了然地看到需要发布的内容。查找 Nexus 的示例pom.

关于version-control - Maven 2 项目版本、依赖版本和永久发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/714909/

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