修改 pom.xml 文件
打包方式改為war
<packaging>war</packaging>
添加對(duì) servlet-api 的 Maven 依賴(lài)(如果沒(méi)有的話(huà))
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
添加 resource 插件的配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>target/classes</outputDirectory>
<!--<useDefaultDelimiters>false</useDefaultDelimiters>-->
<!--<delimiters>-->
<!--<delimiter>#</delimiter>-->
<!--</delimiters>-->
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>application*.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<!-- 是否替換#xx#表示的maven properties屬性值 -->
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>application-${spring.profiles.active}.yml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
添加多 profile 的配置
<profile>
<id>dev</id>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<spring.profiles.active>test</spring.profiles.active>
</properties>
</profile>
<profile>
<id>demo</id>
<properties>
<spring.profiles.active>demo</spring.profiles.active>
</properties>
</profile>
修改 application.yml 或 application.properties 文件
spring:
profiles:
active: '@spring.profiles.active@'
或
spring.profiles.active=@spring.profiles.active@
添加類(lèi)文件
在 Application 啟動(dòng)類(lèi)的同級(jí)添加一個(gè) ApplicationWebXml 類(lèi)危融,其代碼如下(注意修改類(lèi)頂部的 package 以及代碼行中啟動(dòng)類(lèi)的類(lèi)名):
package com.yonyou.occ.cmpt;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
/**
* This is a helper Java class that provides an alternative to creating a web.xml.
* This will be invoked only when the application is deployed to a Servlet container like Tomcat, JBoss etc.
*/
public class ApplicationWebXml extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
打包部署
打包
在命令行里運(yùn)行 mvn clean package -D maven.test.skip=true -P prod
(-P 之后的參數(shù)為要打包的 profile)枝嘶,等待打包完成。
部署
- 停止 Tomcat 服務(wù)谋币。
- 將生成的 WAR 包改名為 ROOT.war罗洗,拷貝到 Tomcat(建議使用8.5.x版本)的 webapps 文件夾下碌宴。
- 拷貝之前页慷,先刪除原有的 ROOT.war 和 ROOT 文件夾(如果有的話(huà))捏鱼。
- 最后执庐,啟動(dòng) Tomcat 服務(wù)。