未指定版本的 Maven 兄弟模块依赖

Posted

技术标签:

【中文标题】未指定版本的 Maven 兄弟模块依赖【英文标题】:Maven sibling module dependency without specifying the version 【发布时间】:2020-05-18 14:24:34 【问题描述】:

我有一个具有以下依赖项的多模块 Maven 应用程序;我们正在为其中一个模块使用 maven 发布插件,并且它的版本会在每个发布版本中自动递增。

父模块 |---模块A |---Module B - 版本由 maven 发布插件自动递增 |---模块 C - 依赖于模块 B

问题:如何在Module C中添加Module B的依赖,而不指定版本。目前,我正在对版本进行硬编码,但在每次发布后,我都必须手动将版本更新为最新版本。 为了清楚起见,我想有一个如下的依赖项。

    <dependency>
        <groupId>com.my.application</groupId>
        <artifactId>Module B</artifactId>
    </dependency>

我尝试使用 project.version,但它提供了父版本并且没有帮助。我尝试使用依赖管理,但无法正常工作。请建议。谢谢。

【问题讨论】:

只需使用&lt;version&gt;$project.version&lt;/version&gt;? 感谢您的回复....$project.version 与模块 B 版本不同...它始终返回 $project.version 的父版本,即 1.0.0 in我的情况 @Ansh 为什么要在父模块和子模块之间使用不同的版本?在大多数情况下,您会使用相同的版本,mvn versions:set 和发布插件会负责使它们保持同步。 【参考方案1】:

将您的版本定义为开放式版本范围,如下所示。这将选择最新的可用。

&lt;version&gt;[1.2.3,)&lt;/version&gt;

但是,请确保您的模块 B 的版本控制符合标准。

【讨论】:

感谢 Nipun...似乎它对我有用...必须等待几个发布周期才能验证...模块 B 使用 maven 发布插件所以假设版本将按标准递增

以上是关于未指定版本的 Maven 兄弟模块依赖的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot-maven-plugin未指定版本导致的编译错误

spring-boot-maven-plugin未指定版本导致的编译错误

maven的pom没有指定包的版本

maven的pom没有指定包的版本

maven的仓库配置指定jdk编译版本相关编译命令简介scope依赖的范围以及依赖的传递性

为什么在SpringBoot+maven的项目中,所引入的依赖包可以不指定依赖的版本号?