gpt4 book ai didi

java - 在 Maven Material list (BOM) 的单个条目中设置所有 Maven 子模块的版本

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:39 26 4
gpt4 key购买 nike

我有一个包含多个子模块的库。我已经在父 POM 中设置了库的版本。

<groupId>com.softtech</groupId>
<artifactId>BatchLibrary</artifactId>
<version>2.1</version>
<packaging>pom</packaging>

此外,我还创建了一个定义该库的 Maven Material list (BOM) 项目。

在第一种情况,我在 BOM 中设置了整个库的版本,如下

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</dependencyManagement>

在第二种情况中,我单独设置库的每个子模块的版本,如下所示

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary-core</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.softtech</groupId>
<artifactId>BatchLibrary-web</artifactId>
<version>2.1</version>
</dependency>
</dependencies>
</dependencyManagement>

我已将此 BOM 添加到我的项目中。在我的项目中声明没有版本的库的子模块时。在上面提到的第一种情况下,我收到错误

dependency.version is missing

在第二种情况下,它工作正常。

这就是 BOM 的工作原理吗?我是否必须在 BOM 中单独定义所有带有版本的子模块,或者我可以只用版本定义我的库的父 POM,它应该可以工作。如果应该的话?为什么它在我的情况下不起作用?

最佳答案

BOM 应列出所有 Artifact 的版本。我从 Importing Dependencies 中截取了以下内容Maven网站的“依赖机制简介”部分:

The root of the project is the BOM pom. It defines the versions of all the artifacts that will be created in the library. Other projects that wish to use the library should import this pom into the dependencyManagement section of their pom.

关于java - 在 Maven Material list (BOM) 的单个条目中设置所有 Maven 子模块的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47530740/

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