javascript
Spring Boot 发布 jar 包转为 war 包秘籍。
轉載自?Spring Boot 發布 jar 包轉為 war 包秘籍。
Spring Boot是支持發布jar包和war的,但它推薦的是使用jar形式發布。使用jar包比較方便,但如果是頻繁修改更新的項目,需要打補丁包,那這么大的jar包上傳都是問題。所以,jar包不一定合適適用所有的場景,如war包更合適,你可以嘗試轉為傳統的war包,這樣打補丁包可能更方便。
如何配置打war包呢?
以下配置以Maven為說明講解,Gradle的查看類似配置。
1、修改Spring Boot啟動類
啟動類繼承 SpringBootServletInitializer類,并覆蓋 configure方法。
下面是Spring Boot提供的示例代碼。
@SpringBootApplication public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}public static void main(String[] args) throws Exception {SpringApplication.run(Application.class, args);} }2、修改jar為war包形式
在pom文件中,添加war包配置。
<packaging>war</packaging>如果不添加,默認為jar包。
3、去除Spring Boot內置Tomcat
修改自帶tomcat依賴范圍為provided,防止與外部tomcat發生沖突。
<dependencies><!-- … --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><!-- … --> </dependencies>4、添加war包打包插件
如果你用的是繼承spring-boot-starter-parent的形式使用Spring Boot,那可以跳過,因為它已經幫你配置好了。如果你使用的依賴spring-boot-dependencies形式,你需要添加以下插件。
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><configuration><failOnMissingWebXml>false</failOnMissingWebXml></configuration> </plugin>failOnMissingWebXml需要開啟為false,不然打包會報沒有web.xml錯誤。
如何打war包?
打war包方式和打jar包方式一樣,沒有區別。
在Maven中使用 mvn cleanpackage命令即可打包。
在Idea中可以這樣設置打包:
改在war包后,發現打war包比打jar要上好多。
jar包轉war包有什么影響?
1、application配置文件中的server.xx等關于容器的配置就無效了,改配置需要在外部tomcat中進行。
2、Spring Boot的升級是否需要Tomcat跟著升級?需要觀察。
3、打war包比打jar明顯要變慢好多。。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Spring Boot 发布 jar 包转为 war 包秘籍。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微博可以改名字吗 微博改名字的操作方法
- 下一篇: 劳心者治人劳力者治于人意思 劳心者治人劳