在應用部署的時候,往往遇到需要發布到不同環境的情況,而每個環境的數據庫信息、密鑰信息等可能會存在差異。
如果是單獨環境直接可以通過:
mvn clean package
來進行打包部署。
針對于多環境,例如我的eureka-server注冊中心項目就涉及到了
Paste_Image.png
多個運行環境:測試,開發,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