增加依赖模块版本是否应该增加父模块版本?

Does incrementing depending module version should increment parent module version?

我的父模块 A 有模块 B 作为其依赖项。如果我增加 B 的版本只是为了修复一个简单的错误,这不会改变任何 API 或破坏任何东西,我还需要增加 A 的版本吗?

示例:

A:1.10.0 --> B:2.5.0
fixing B to 2.5.1

在这种情况下,Maven 上的 A 依赖于旧版本的 B,因此,似乎也可以创建 A 的版本;所以有:

A:1.10.1 --> B:2.5.1

即使我们没有更改 A 中的任何内容。

这是正确的吗?

是的,你是对的。如果更改任何依赖项的版本,则需要再次构建和发布父项目。这将创建父模块 A 的新发布版本。

(这里假设父模块A的封装类型不是pom,如果是pom封装就另当别论了)

已编辑:

当你说父项目时,你会声明它的包装为pom。它将有自己的版本。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>parent</artifactId>
  <version>0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

  <modules>
    <module>web-project</module>
  </modules>
</project>

您还可以在父pom 声明中引用一些模块(子项目)。

<parent>
    <groupId>com.mycompany.app</groupId>
    <artifactId>parent</artifactId>
    <version>0.1-SNAPSHOT</version>     
</parent>

<artifactId>web-project</artifactId>
<packaging>war</packaging>

那么对于子模块就不需要声明任何版本了。父版本将转移到子项目。您可以覆盖子项目中的版本,但这不是常见的做法。所以当你用 maven 发布它时,你的父 pom 版本会自动增加。这个新版本也将被转移到子项目(模块)中。

看到这个 - Maven project version inheritance - do I have to specify the parent version?

所以父模块A,我指的是上面的案例。

而 maven 存储库 - 可以有两种类型 - 本地存储库和远程存储库。本地仓库是 Maven 寻找解决依赖关系的地方。这是在你的机器上。如果 maven 在那里找不到它,maven 会从远程存储库中检索这些依赖项。