一、问题
现在项目很多都是使用springcloud微服务这些,但是有个问题则是多个微服务之间打包的问题。我遇到的一个问题是要求项目进行动态打包,方便以后的自动化部署。
二、项目demo
![](https://img.haomeiwen.com/i6261388/1c927e377f08fea7.png)
1、父项目springcloud,是pom项目。(用在父级工程或聚合工程中。用来做jar包的版本控制)
2、子项目common,common-gw jar项目。(通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包)
3、子项目eureka war项目。(是做好一个web网站后,打成war包部署到服务器。目的是节省资源,提供效率)
三、springcloud动态版本管理方案
1、pom项目做静态版本管理,版本号在pom.xml里写具体值
2、jar项目做静态版本管理,版本号在父项目里进行管理
3、war项目做动态管理,版本号由打包时传递参数来决定
四、具体代码
1、父项目pom.xml
![](https://img.haomeiwen.com/i6261388/40a054f172c3178e.png)
pom项目的version直接写的是1.0.0,jar项目2.0.0版本由这里控制,项目有3个子项目
2、jar项目pom.xml
![](https://img.haomeiwen.com/i6261388/a08d3b22b0cc6e40.png)
这里common.version是由父项目传递过来的
3、war项目pom.xml
![](https://img.haomeiwen.com/i6261388/145ca910b2968fbb.png)
war项目的版本号eureka.verison是由命令传递的,引用jar包的版本号由pom父项目传递回来
五、打包命令
1、首先打包pom和jar包
mvn clean install -pl ./common,./common-gw -am
![](https://img.haomeiwen.com/i6261388/8565c8775de2d89e.png)
![](https://img.haomeiwen.com/i6261388/b7d1fc01092de291.png)
2、打包war包
cd ./eureka/
mvn clean install -Deureka.version=3.0.0
六、参考
https://www.cnblogs.com/hiver/p/7850954.html
网友评论