springboot经常使用内置tomcat,现在有需要,要将项目打包成war放在外置tomcat下运行,一时间有点忘记打war包流程,现在做下笔记。
直接上代码:
1、在启动类中:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@SpringBootApplication
public class ClassloadwarApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ClassloadwarApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(ClassloadwarApplication.class, args);
}
}
2、在pom文件中
1)设置打包方式为war
<packaging>war</packaging>
2)排除内置tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 排除Tomcat的干扰用于打war 包 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3)使用外部tomcat
<!-- 打成war的时候使用,本地开发用内嵌tomcat时去掉 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
4)引入maven插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如上操作完成后,直接clean、package,就可以在target中看到打好的包:
3、放在tomcat中webapps下面,直接运行后访问:
默认项目访问当下问路径为war包名称;