将Spring boot 项目打包war部署到tomcat服务艰难---后补(有待完善)
在Spring Boot项目中,默认情况下,Spring Boot使用嵌入式Tomcat。如果你想将Spring Boot项目打包成WAR文件并部署到外部Tomcat服务器,你需要做一些额外的配置。以下是步骤和示例代码:
- 在
pom.xml
中,移除Spring Boot的内嵌Tomcat依赖,并添加WAR打包插件:
<dependencies>
<!-- 移除内嵌Tomcat依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 其他依赖 -->
</dependencies>
<build>
<plugins>
<!-- 添加WAR插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
</plugins>
</build>
- 创建一个继承自
SpringBootServletInitializer
的启动类,并重写configure
方法:
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 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);
}
}
- 使用Maven打包你的应用程序:
mvn clean package
打包完成后,你会得到一个WAR文件,可以将其部署到Tomcat服务器。
部署到Tomcat服务器后,确保Tomcat的context.xml
配置文件中没有设置antiResourceLocking
和antiJARLocking
为false
,否则可能会导致Spring Boot的热部署失效。如果你使用的是Spring Boot 2.0或更高版本,可以不必担心这一点,因为这两个属性默认值已经改变。
以上步骤和代码是一个基本的指南,根据你的具体需求,可能需要做一些调整。
评论已关闭