Skip to content

17. Spring Boot发布

  • 独立的jar(可运行的)
  • 发布到中间件(Servlet容器)中.
    • Tomcat
    • Jetty
    • Weblogic

17.1 独立jar的形式发布

修改打包方式为jar

xml
 <packaging>jar</packaging>

​ 添加boot的maven插件

xml
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

​ 如果是低版本的 maven-plugin需要配置启动类

img

执行打包命令

img

img

启动jar

sh
java  -jar server-0.0.1-SNAPSHOT.jar

img

18.4.5. 在本地测试下

img

发布到服务器上访问

使用各种工具ftp、ssh将jar传到服务上

img

img

img

添加jsp的代码

添加jsaper依赖,设置webapp的目录,(idea的环境额外设置working dir),在集成开发环境IDE是可以正常访问JSP,在jar的形式失败(404)

img

为了解决上述问题,修改pom文件将打包方式修改为WAR

17.2. 独立的Tomcat发布

独立的Tomcat

img

17.2.1. 修改pom的依赖

xml
<?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">
    <parent>
        <artifactId>springboot-learn-parent</artifactId>
        <groupId>com.neuedu.boot</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>
    <artifactId>12-boot-deploy</artifactId>

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

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--                    <mainClass>com.neuedu.ec.server.ServerApp</mainClass>-->
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

17.2.2. 修改下启动类

1、继承SpringBootServletInitializer

2、重写configure方法

java
package com.neueud.controller;


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 App12 extends SpringBootServletInitializer {

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


    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(App12.class);
    }
}

在命令行中可以使用 -D区分不同的环境, 在Tomcat环境下可以可以通过修改catalina.bat文件 添加虚拟机参数

bat
set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=prod"

Released under the MIT License.