IntelliJ IDEA Sringboot 项目部署到外部Tomcat服务器

时间:2024-04-30 13:05:52
<packaging>war</packaging>

  添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

  

排除自带tomcat,不排除也没有影响,只是多了个jar包

<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>

  

注释spring-boot-maven-plugin,使用maven-war-plugin

<!--
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>bing.AuthorityApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin> --> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>

  修改启动类

//@SpringBootApplication
//public class SpringlearnApplication {
//
// public static void main(String[] args) {
// SpringApplication.run(SpringlearnApplication.class, args);
// }
//} @SpringBootApplication
public class SpringlearnApplication extends SpringBootServletInitializer { @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringlearnApplication.class);
} public static void main(String[] args )
{
SpringApplication.run(SpringlearnApplication.class, args);
}
}

 打包生成war

IntelliJ IDEA Sringboot 项目部署到外部Tomcat服务器

从根目录启动,其中xxx为war的名称

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

    <Context path="" docBase="xxx" debug="0" reloadable="true"/>

    ...
</Host>