此文已由做者易國強受權網易雲社區發佈。
html
歡迎訪問網易雲社區,瞭解更多網易技術產品運營經驗。java
採用Spring Boot框架來構建項目,咱們對項目的打包有兩種方式可供選擇,一種仍保持原有的方式不變,package一個war包放置到外置的應用容器中;另外一種則是直接打包成一個jar包,這個jar包裏面包含了內置的應用容器,能夠經過Java命令直接啓動運行。
web
對於jar包的方式,前面文章的示例中其實咱們就是採用的此種方式,使用方式再也不贅述。
spring
若是採用war包的方式,其實也很簡單,咱們僅僅須要變動下配置便可,具體操做以下所示:tomcat
將pom.xml文件中打包方式變動成war安全
<groupId>com.example.future</groupId> <artifactId>bingo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
變動內置容器(默認tomcat)的做用範圍爲provided,這樣在打包時就不會將內嵌的容器打入war包中。在依賴中加入以下內容:app
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
自定義一個servlet初始化類,繼承SpringBootServletInitializer類,以下所示:框架
package com.example.future; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.support.SpringBootServletInitializer; /** * @author future */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(BingoApplication.class); } }
經過以上步驟便可完成war包方式的改寫。咱們再執行package命令時,在target目錄下生成的即爲項目war包了。運維
具體的打包方式能夠根據咱們項目的實際需求以及運維現狀來決定。顯而易見的,若是採用jar包的方式進行部署,那麼對於容器(如tomcat)的管理,開發人員能夠介入其中自行維護,部署也相對簡單些。固然,若須要運維在外部配置指定也是能夠的,在使用java命令啓動打好的jar包時指定運行參數便可。分佈式
不足之處,歡迎指正,謝謝~
更多網易技術、產品、運營經驗分享請點擊。
相關文章:
【推薦】 分佈式存儲系統可靠性系列一:如何估算
【推薦】 深刻淺出「跨視圖粒度計算」--三、EXCLUDE表達式