gpt4 book ai didi

java - 从多模块项目发布 bom

转载 作者:搜寻专家 更新时间:2023-10-30 21:30:22 24 4
gpt4 key购买 nike

我们是一家大公司,拥有大约 2000 个独立的 Java 项目。由于历史原因,我们没有多模块项目,但我们想介绍一下。

从逻辑上讲,我们已经有了项目“组”,即有人负责(比方说)50 个密切相关的项目。这个人定期发布一个 BOM,其中包含这 50 个项目的最新、连贯的版本。

现在抓取这 50 个项目并将它们放入一个大型多模块项目中会很有意义。尽管如此,还是有必要发布 BOM,因为其他项目(在我们小组之外)应该有一致的版本。

总而言之,我们需要一个 BOM,其中包含属于多模块项目的所有 50 个项目的版本。我想知道创建这样一个 BOM 的“Maven 方式”是什么。我能想到的:

  • bom 是多模块项目的第 51 个项目。依赖项的版本由父 pom 中的属性设置。
  • bom 是根据多模块项目中存在的信息生成的,并作为辅助 Artifact 发布(这可能需要我们为此编写一个 Maven 插件)。

什么是可取的?

最佳答案

我们也将 BOM 用于我们的多模块项目,但我们不会将它们的生成或更新与这些模块的构建联系起来。

BOM 只有在我们的发布管理流程完成构建模块(或模块组)的交付时才会更新:一旦交付,BOM 就会更新并推送到 Nexus(存储为 1.0-SNAPSHOT 版本,不断被覆盖每次交付后)

然后 BOM 包含在我们的 POM 中(用于单模块或多模块项目)并仅用于依赖管理,这意味着我们的项目依赖于 Artifact 没有版本:来自 BOM 的依赖管理提供其他依赖模块的最新交付版本。

换句话说,我们将构建方面(在这里使用 maven 完成)与发布部分分开:“ Material list ”代表已交付的内容,并确保所有项目都使用被认为可以很好地协同工作的版本进行构建(因为它们已一起交付生产)。

关于java - 从多模块项目发布 bom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334049/

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