gpt4 book ai didi

java - 如何发布具有未发布依赖项的多模块项目

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

我有一个多模块项目(平面结构)如下

parentpom (1.1-SNAPSHOT)moduleA (inherits parentpom version, depends on moduleB(1.1-SNAPSHOT))moduleB (inherits parentpom version)aggregator (inherits parentpom version, aggregates moduleA, moduleB)

聚合器允许我同时构建、安装和部署 moduleA 和 moduleB,并且看起来符合我的预期。

当我尝试发布 1.1 版时,我做不到,因为模块 A 依赖于模块 B(1.1-SNAPSHOT),导致以下错误:“由于未发布的依赖项无法发布项目”

我认为使用聚合器可以让我“同步”发布 moduleA 和 moduleB,自动更新 moduleA 以依赖于 moduleB(1.1)。实现这一目标的正确方法是什么?

谢谢

最佳答案

How to release a multi-module project with non released dependencies

要严格回答这个问题,这是不可能的,至少对于 Maven Release Plugin 是不可能的。如果您不使用 Maven Release Plugin 并手动执行发布,则无论如何都不应该这样做。

原因:发布的构建应该是可重复的,稍后从其源构建它应该给出完全相同的结果。在一些发布的 POM 中有一些 SNAPSHOT 依赖项完全违背了这个目标。这就是 Maven 发布插件强制执行此操作的原因。

I thought that using the aggregator would allow me to do a "synchronised" release of moduleA and moduleB, automatically updating moduleA to depend on moduleB(1.1). What would be the correct way of achieving this?

版本是硬编码的吗?如果是,这可能就是问题所在。

  • moduleB 和 moduleA 不应该声明任何版本,它们是从父 POM 继承的

  • moduleA 应该使用内置属性来声明它对 B 的依赖

    <dependency>
    <groupId>${project.groupId}</groupId>
    <artifactId>moduleB</artifactId>
    <version>${project.version}</version>
    </dependency>

关于java - 如何发布具有未发布依赖项的多模块项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666047/

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