未指定版本的 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,但它提供了父版本并且没有帮助。我尝试使用依赖管理,但无法正常工作。请建议。谢谢。
【问题讨论】:
只需使用<version>$project.version</version>
?
感谢您的回复....$project.version 与模块 B 版本不同...它始终返回 $project.version 的父版本,即 1.0.0 in我的情况
@Ansh 为什么要在父模块和子模块之间使用不同的版本?在大多数情况下,您会使用相同的版本,mvn versions:set
和发布插件会负责使它们保持同步。
【参考方案1】:
将您的版本定义为开放式版本范围,如下所示。这将选择最新的可用。
<version>[1.2.3,)</version>
但是,请确保您的模块 B
的版本控制符合标准。
【讨论】:
感谢 Nipun...似乎它对我有用...必须等待几个发布周期才能验证...模块 B 使用 maven 发布插件所以假设版本将按标准递增以上是关于未指定版本的 Maven 兄弟模块依赖的主要内容,如果未能解决你的问题,请参考以下文章
spring-boot-maven-plugin未指定版本导致的编译错误
spring-boot-maven-plugin未指定版本导致的编译错误