Spring Boot项目部署到外部Tomcat

在此声明:如果你的Spring Boot的版本为2.0.0+,一定要使用Tomcat 8+服务器,因为依赖包问题。

启动类配置

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

 public static void main(String[] args) {
     SpringApplication.run(applicationClass, args);
 }

 @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(applicationClass);
}
private static Class<Application> applicationClass = Application.class;
}

POM文件更新

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.demo</groupId>
    <artifactId>demo</artifactId>


    <packaging>war</packaging>
    <description>Demo project</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.0.0.BUILD-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>
       <!--这个指明Tomcat作用域是外部提供的-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>


    <properties>
        <start-class>org.demo.demo.Application</start-class>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

</project>

构建项目

构建项目要选择build path->server runtime到正确的Tomcat运行时环境,然后再项目属性中选择合适的JDK版本,不会谷歌。

run maven install

STS环境下点击maven install,如果运行再STS IDE下。
在命令行下,切到项目根目录,运行mvn clean install -Dmaven.test.skip=true,你可以在target目录下看到war包

猜你喜欢

转载自blog.csdn.net/qq_33745102/article/details/80364224