springboot學習之maven多環境打包的幾種方式

在應用部署的時候,往往遇到需要發布到不同環境的情況,而每個環境的數據庫信息、密鑰信息等可能會存在差異。

如果是單獨環境直接可以通過:

 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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容