欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)

程序员文章站 2022-03-26 14:54:24
我们在中台构建中提供了底层的中台能力服务的基础中间件构建,其应用架构沿用阿里的风格,使用了分包的应用架构方式。在构建中我们会基于高内聚低耦合的方式对模块进行隔离化处理。具体方式见下图: 我们用Maven建立一个项目时,包含了多个子Model,我们想把一个子Model打包deploy到私服上去,就需要对版本号进行统一的管理。具体需要如下:1.从父节点把整个project都deploy上去,这时别人才能拉去到你上传的model。2.保证整个project中......

我们在中台构建中提供了底层的中台能力服务的基础中间件构建,其应用架构沿用阿里的风格,使用了分包的应用架构方式。在构建中我们会基于高内聚低耦合的方式对模块进行隔离化处理。具体方式见下图:

                   首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)

我们用Maven建立一个项目时,包含了多个子Model,我们想把一个子Model打包deploy到私服上去,就需要对版本号进行统一的管理。

具体需要如下:

1.从父节点把整个project都deploy上去,这时别人才能拉去到你上传的model。

2.保证整个project中所有model的根pom的version一致。

但中台项目的迭代周期非常快,在生产需要使用release版本发布,由于release版本每次deploy时版本号不能重复,所以就需要每次都修改根pom的version和子model的parent中的version。这时,就会有以下问题需思考:

1 正式版不能重复发布,所以版本号每次上线都要更改;
2 当项目中包含几个子模块时,通常我们想让子模块的版本号跟父项目的版本号一致;
3 子模块也会相互依赖;

根pom版本号相关配置:

	<groupId>com.****.****</groupId>
	<artifactId>****</artifactId>
	<packaging>pom</packaging>
	<version>1.0.0.2-SNAPSHOT</version>
	<name>${project.artifactId}</name>

 

根pom相关项目依赖:

			<!--项目依赖 -->
			<dependency>
				<groupId>com.****.****</groupId>
				<artifactId>****-common</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>com.****.****</groupId>
				<artifactId>****-collect</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>com.****.****</groupId>
				<artifactId>****-core</artifactId>
				<version>${project.version}</version>
			</dependency>
			<!--项目依赖 End -->

 

 

****-common子模块pom配置:

 

    <parent>
        <artifactId>aaaa</artifactId>
        <groupId>com.****.****</groupId>
        <version>1.0.0.2-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>*****-common</artifactId>
    <name>${project.artifactId}</name>
    <description>通用共享模块</description>

 

其他的子模块配置与上一致

 

 

 

 

 

版本升级命令:

    mvn versions:set -DnewVersion=1.0.0.3-SNAPSHOT -DgenerateBackupPoms=false

    执行上述命令后会把个模块的版本号改为1.0.0.3-SNAPSHOT

 

  • DnewVersion: 设置父pom版本,子pom中parent.version属性
  • DgenerateBackupPoms=false: 这个参数默认为true,false表示修改pom之后不生成备份文件,直接生效。

 

   验证:

1 在IDEA右侧点击 install

                            首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)

 

在本地仓库就可以看见发布的包,在根pom执行deploy就可以发布到私有仓库;

本文地址:https://blog.csdn.net/u012921921/article/details/107553498