springboot将项目打成war包部署到其他的tomcat中
Spring Boot自己有tomcat,也提供了很多配置选项tomcat,比如端口号、访问地址等,但是很多时候可能一个tomcat下部署多个项目,需要将项目打成war包部署至自己的服务中,如下是具体步骤:
一 修改pom文件去掉自带tomcat,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 不使用自带tomcat -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
二 提供一个 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);
}
}
或者使用新建一个类继承SpringBootServletInitializer
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
以上写法二选一即可
<packaging>war</packaging>
maven打包自定义名字
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>springboot</warName>
</configuration>
</plugin>
四 放入外部tomcat的 webapp目录中,启动bin目录中的startup命令