Springboot项目打包成war包
1、首先创建一个springboot工程,然后我们改造启动类如:
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 AuroraWarApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(AuroraWarApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(AuroraWarApplication.class, args);
}
}
2、application.yml中不再需要配置上下文端口这些,简单配置个应用名
spring:
application:
name: aurora-war
3、修改pom文件
首先设置当前包打包为war
<artifactId>aurora-war</artifactId>
<name>aurora-war</name>
<description>Spring Boot to war</description>
<packaging>war</packaging>
其次修改对tomcat依赖的使用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<scope>provided</scope>
</dependency>
最后修改<build>标签内容添加maven-war-plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>aurora-war</warName>
</configuration>
</plugin>
</plugins>
</build>
4、使用idea简单测试下
先编写一个controller
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
@GetMapping("/index")
public String index(){
return "index";
}
}
idea中配置好本地tomcat路径和端口信息
配置需要部署的war包和上下文
启动本地tomcat访问controller