Maven 子模块B依赖A,A、B的版本号和父pom一致,如何升级B的版本

新手上路,请多包涵

问题描述

您好,之前看了您关于maven的一个回答和我目前遇到的问题有点类似,我先简单描述下。
我们一个maven聚合项目目录结构大概是这样:

 - parent
     -module-common
     -module-sdk

其中sdk、common的版本和父pom版本保持一致,sdk中引用了common的依赖(在父pom中利用${project.version}和父pom版本保持一致),如何更好的升级子模块sdk的版本?

问题出现的平台版本及自己尝试过哪些方法

方案一:目前我们采用整体升级版本的方式,通过升级parent pom的版本,进行统一升级。
存在的问题:每次改动,所有parent 、common、sdk版本都升级了。

相关代码

主pom的配置

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.smaple</groupId>
    <artifactId>smaple-parent</artifactId>
    <name>${project.artifactId}</name>
    <version>1.0.11-RELEASE</version>
    <packaging>pom</packaging>
     <dependencyManagement>
        <dependencies>
            <!-- project module -->
            <dependency>
                <groupId>com.smaple</groupId>
                <artifactId>smaple-sdk</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.smaple</groupId>
                <artifactId>smaple-common</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>  

common pom配置

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
        <artifactId>smaple-parent</artifactId>
      <groupId>com.smaple</groupId>
        <version>1.0.11-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>smaple-common</artifactId>
    <name>smaple-common</name>
    <packaging>jar</packaging>
</project> 

sdk pom配置

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
        <artifactId>smaple-parent</artifactId>
      <groupId>com.smaple</groupId>
        <version>1.0.11-RELEASE</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>smaple-sdk</artifactId>
    <name>smaple-sdk</name>
    <dependencies>
        <dependency>
            <groupId>com.souche</groupId>
            <artifactId>fin-repayment-common</artifactId>
        </dependency>
     </dependencies>
</project> 

希望答主能分享下经验,如何更优雅的升级子版本。

阅读 5.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进