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

本文主要是介绍首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用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

                            

 

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

这篇关于首席架构师推荐:金融保险领域数字化转型实践--如何优雅地修改业务中台中分层应用Maven多模块的版本号?(命令导入式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094722

相关文章

C#中的Converter的具体应用

《C#中的Converter的具体应用》C#中的Converter提供了一种灵活的类型转换机制,本文详细介绍了Converter的基本概念、使用场景,具有一定的参考价值,感兴趣的可以了解一下... 目录Converter的基本概念1. Converter委托2. 使用场景布尔型转换示例示例1:简单的字符串到

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1