IDEA小插件之快速修改Maven多模块的工程版本
Github:https://github.com/zwjlpeng/versions
问题
在Maven构建的多模块块程中,如果我们需要修改工程的版本号,会怎么操作呢
example
例如工程A包括了A-Base, A-Servie, A-Web, A-MS
A-Base继承于A
A-Service依赖于A-Base, 继承于A
A-Web依赖于A-Service, 继承于A
A-MS依赖于A-Service, 继承于A
现在我们需要将工程的版本号从1.0修到到2.0,需要怎么操作,打开所有的pom文件,然后ctrl+f定位到需要修改版本号的地方,然后手动修改,所有pom修改完后,还得校验一边,
重复性的工作太多,而且还容易由于遗望某个版本,导到线上依赖的版本不对,而出现一些诡异的事情,排查了半天,才发现是由于版本不对造成的问题
解决方法一
mvn versions:set -DnewVersion=2.0
mvn versions:update-child-modules
能够将所有父子模块中父模块的版本号变成2.0,但是却没法解决子模块各自依赖的版本号的变更,还需要我们借助ctrl+f一个一个的找,然后进行替换
此方法仍然比烦麻烦
解决方案二
就让我们自已写一款插件,由于笔者使用的是idea,因此基于idea开发了插件版本的快速修改工具,方便版本的快速修改,保证上线前父子模块版本号的一致,至于上线时要求父子模块版本不一致,这种比较怪异的需求,建议你还是ctrl+f吧
安装步骤
1.git clone https://github.com/zwjlpeng/versions.git
2.cd versions
3.open the `IntelliJ IDEA` development env
4.click in order `IntelliJ IDEA` -> `Preferences` -> `Plugins` -> `Install plugins from disk` -> `select the version.jar`
5.restart the `IntelliJ IDEA`
附截图一

附图二

附图三

IDEA小插件之快速修改Maven多模块的工程版本的更多相关文章
- Maven 多模块父子工程 (含Spring Boot示例)
一.为什么要用Maven多模块 假设有这样一个项目,很常见的Java Web应用.在这个应用中,我们分了几层: Dao Service Web 对应的,在一个项目中,我们会看到一些包名: org.xx ...
- 修改maven默认的JDK编译版本
1.全局模式(settings.xml) <profiles> <profile> <id>jdk-1.8</id> <activation> ...
- maven常见问题处理(3-1)修改maven 默认使用的 jdk 版本
Eclipse工程应设定了1.8,maven编译仍然使用1.6的解决办法 解决方式有两种,一种是配置 pom.xml,一种是配置 settings.xml. 方式一:settings.xml 配置 打 ...
- eclipse 如何修改maven插件本地仓库jar包默认存储位置
eclipse 如何修改maven插件本地仓库jar包默认存储位置 CreateTime--2018年4月18日11:04:47 Author:Marydon 1.更改eclipse的maven本 ...
- 谷歌浏览器修改cookie访问网页的小插件——EditsThisCookie
cookie是服务器用来区分不同的浏览器客户端的,比如学生A和B同一时段用各自的电脑访问学校访问学校的教务系统查看成绩,登录之后,访问同一页面确出来不同的信息,并且不能查看对方的信息,这就是因为服务器 ...
- 巧妙使用Firebug插件,快速监控网站打开缓慢的原因
原文 巧妙使用Firebug插件,快速监控网站打开缓慢的原因 很多用户会问,我的网站首页才50KB,打开网页用了近60秒才打开?如何解释? 用户抱怨服务器运行缓慢,w3wp.exe 出现 CPU 10 ...
- Gradle 修改 Maven 仓库地址
gradle install--- http://www.itnose.net/detail/6500082.html http://stackoverflow.com/questions/51025 ...
- Java 操作jar包工具类以及如何快速修改Jar包里的文件内容
需求背景:写了一个实时读取日志文件以及监控的小程序,打包成了Jar包可执行文件,通过我们的web主系统上传到各个服务器,然后调用ssh命令执行.每次上传前都要通过解压缩软件修改或者替换里面的配置文件, ...
- 【Bootstrap】优秀小插件收集
Bootstrap中不乏很多优秀的小插件来让界面更加漂亮.比如之前做过笔记的bootstrap-fileinput,select2,datetimepicker等都是属于这一系列的.这些相对而言比较大 ...
随机推荐
- 仙人掌&圆方树
仙人掌&圆方树 Tags:图论 [x] [luogu4320]道路相遇 https://www.luogu.org/problemnew/show/P4320 [ ] [SDOI2018]战略 ...
- C++中各个后缀名文件的作用
1.tlb.tlh和tli文件的关系 tlb文件:com类型库文件.在需要使用对应com类的模块里,“#import ...*.tlb”使用之.tlh.tli文件:他们是vc++编译器解析tlb文 ...
- 【转载】基于MFC的ActiveX控件开发(1)
原文:http://iysm.net/?p=114 ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC下ActiveX控件的开发可以分为三种,一 ...
- 4539: [Hnoi2016]树
4539: [Hnoi2016]树 链接 分析: 主席树+倍增. 代码: #include<cstdio> #include<algorithm> #include<cs ...
- Kali2.0可用国内源更新sources.list
vim /etc/apt/sources.list #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contri ...
- Merge语句中NULL的陷阱
NULL表示unknown,不确定值,所以任何值(包括null值)和NULL值比较都是不可知的,在on子句,where子句,Merge或case的when子句中,任何值和null比较的结果都是fals ...
- (转载)jquery实现全选、反选、获得所有选中的checkbox
举了7个不同的checkbox状态,和大家一一分享. 1.全选 $("#btn1").click(function(){ $("input[name='checkbox' ...
- k8s常用命令记录
目录 kubectl常用命令 kubectl get pod -n dev 查看日志 查看pod详情 删除pod 删除job 进入pod里面 查看namespace 创建namespace 删除nam ...
- 一个很NB的404页面
一个带彩蛋的 404 页面 不得不说这个程序猿很有才 前往404页面 触发方法 按住鼠标左键 在页面中心不停的画圈 就可以进入神奇的地方了
- alibaba/fescar 阿里巴巴 开源 分布式事务中间件
Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题. 示例:https://github.com/windwant/ ...