springboot学习之maven多环境打包的几种方式
2017-09-12 本文已影响2670人
_奔波儿灞_
在应用部署的时候,往往遇到需要发布到不同环境的情况,而每个环境的数据库信息、密钥信息等可能会存在差异。
如果是单独环境直接可以通过:
mvn clean package
来进行打包部署。
针对于多环境,例如我的eureka-server注册中心项目就涉及到了
多个运行环境:测试,开发,master,backup...
backup:
server.port=8762
spring.application.name=buddhism-eureka-server
#这里配置注册中心的集群 本项目为 backup ,master启动端口 8761
eureka.instance.hostname=backup
#通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#这里配置的是master的地址
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
#logging.path=/usr/tools/publish-project/log/${spring.application.name}/backup.log
logging.path=C:\\Users\\10348\\Desktop\\log\\xinduhui-logback.log
spring.profiles=backup
master:
server.port=8761
#如果放到一台 eureka不认为是集群 集群最好奇数
spring.application.name=buddhism-eureka-server
#这里配置注册中心的集群 本项目为 backup ,master启动端口 8761
eureka.instance.hostname=master
#通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
#这里配置的是master的地址
eureka.client.service-url.defaultZone=http://127.0.0.1:8762/eureka/
#logging.path=/usr/tools/publish-project/log/${spring.application.name}/backup.log
logging.path=C:\\Users\\10348\\Desktop\\log\\xinduhui-logback.log
spring.profiles=master
那么我们怎么针对不同的环境进行打包部署呢?
1.在默认的application.properties或者yaml中设置profile
spring.profiles.active=@spring.profiles@
#低版本的springboot中application.properties中的参数写法为 ${param}
#我目前测试过的在Spring Boot 1.3.0.RELEASE及以上版本中必须使用格式 @param@才能生效
打包命令:
mvn clean package -Pprod
#或者
mvn clean package -Dspring.profiles=prod
命令解释:
-D,--define <arg> 定义系统属性
-P,--activate-profiles <arg> 激活指定的profile文件列表(用逗号[,]隔开)
这样的话,多环境按需求选择环境打包就成功了。O(∩_∩)O