当前位置: 移动技术网 > IT编程>开发语言>Java > 首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)

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

2020年07月26日  | 移动技术网IT编程  | 我要评论

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

                   

我们用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

                            

 

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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网