springboot默認打包形式是生成可執(zhí)行jar包炊林,如果想實現(xiàn)本地開發(fā)和測試打jar包姥卢,生產(chǎn)環(huán)境打war包,就需要更改幾個地方
1. 復(fù)制并重命名啟動類渣聚,修改內(nèi)容
2. pom文件設(shè)置啟動類独榴、打包方式改成war、排除內(nèi)置tomcat
3. 執(zhí)行maven打包命令時加上 -f pom_xxx.xml命令(指定pom文件)
上代碼奕枝!
1. 復(fù)制并重命名新啟動類棺榔,修改內(nèi)容
- 原啟動類(用于開發(fā)調(diào)試)
@SpringBootApplication
public class TrainTicketApplication {
public static void main(String[] args) {
SpringApplication.run(TrainTicketApplication.class, args);
}
}
- 新啟動類 (打war包部署tomcat做適配)
@SpringBootApplication
public class TrainTicketApplication_Tomcat extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(TrainTicketApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TrainTicketApplication.class);
}
}
2 . pom文件設(shè)置啟動類、打包方式改成war隘道、排除內(nèi)置tomcat症歇,同樣也需要復(fù)制一份pom文件,并重命名谭梗,修改文件內(nèi)容
<packaging>war</packaging>
<properties>
<!-- 指定啟動類 -->
<start-class>com.zhaoqing.trainticket.TrainTicketApplication_Tomcat</start-class>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--排除內(nèi)置tomcat-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的時候可以不用包進去忘晤,別的設(shè)施會提供。事實上該依賴理論上可以參與編譯激捏,測試设塔,運行等周期。
相當于compile远舅,但是打包階段做了exclude操作-->
<scope>provided</scope>
</dependency>
<build>
<!-- 指定War包名稱-->
<finalName>train-ticket</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 執(zhí)行maven打包命令時加上 -f pom_xxx.xml命令(指定pom文件)
- 本地調(diào)試時打jar包的maven命令:
mvn clean package -Dmaven.test.skip=true
- 線上部署時打war包的maven命令:
mvn clean package -Dmaven.test.skip=true -f pom_tomcat.xml