war包部署
1.設置打包方式為war
<packaging>war</packaging>
2.在插件中指定入口類
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--使用熱部署出現中文亂碼解決方案-->
<configuration>
<fork>true</fork>
<!--增加jvm參數-->
<jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
<!--指定入口類-->
<mainClass>xxxxxxApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
3.排除內嵌的tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope> <!--去掉內嵌tomcat-->
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope> <!--去掉使用內嵌tomcat解析jsp-->
</dependency>
4.配置入口類
//1.繼承SpringBootServletInitializer
//2.覆蓋configure方法
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Application.class);
}
}
5.打包測試
一旦使用war包部署注意:
-1. application.yml 中配置port context-path 失效
-2. 訪問時使用打成war包的名字和外部tomcat端口號進行訪問項目
jar包部署
1.設置打包方式為jar
<packaging>jar</packaging>
2.修改插件版本
springboot部署jsp時,插件版本必須指定為1.4.2版本,並進行jsp打包配置才可以,其他版本均不支持!!!
<plugins>
<!--版本必須為1.4.2版本-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
</plugin>
</plugins>
3.指定jsp打包配置
在項目的pom.xml配置文件中build標簽中加入配置
<resources>
<!-- 打包時將jsp文件拷貝到META-INF目錄下-->
<resource>
<!-- 指定resources插件處理哪個目錄下的資源文件 -->
<directory>src/main/webapp</directory>
<!--指定必須要放在此目錄下才能被訪問到-->
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
4.打包測試
java -jar xxx.jar (nohup &)