增加依赖模块版本是否应该增加父模块版本?
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 会从远程存储库中检索这些依赖项。
我的父模块 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 会从远程存储库中检索这些依赖项。