Spring Boot学习—2.将项目打成war包部署到自己的tomcat中
虽然Spring Boot自己有tomcat,也提供了很多配置选项可以去配置tomcat,比如端口号、访问地址等,但是很多时候可能一个tomcat下部署多个项目,需要将项目打成war包部署至自己的服务中,如下是具体步骤:
一、修改pom文件去掉自带tomcat
<!-- 不采用spring-boot自带的tomcat进行启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<artifactId>log4j-over-slf4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
但是因为本地启动还是需要使用到tomcat,因此还需要加入romcat的引用
<!-- 本地启动需要-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
二、修改man方法,提供一个 SpringBootServletInitializer 子类,并覆盖它的 configure 方法。我们可以把应用的主类改为继承 SpringBootServletInitializer。或者另外写一个类。
@SpringBootApplication
public class Application extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
三、将项目打包格式改成war,如下修改pom文件
<packaging>war</packaging>
四、部署项目至tomcat
利用maven的mvn package 进行打包,打包成功后会在target目录下生成war包,将war包部署到tomcat项目文件下(默认是webapp文件夹下),重启tomcat,打开浏览器访问对应地址,访问地址需要加上项目名字,如果需要手动设置war包的名字,可以通过以下修改pom文件方式修改项目名:
<!-- 支持maven打包自定义名字 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>bootTest</warName>
</configuration>
</plugin>