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需要配置启动类

执行打包命令


启动jar
sh
java  -jar server-0.0.1-SNAPSHOT.jar
18.4.5. 在本地测试下 

发布到服务器上访问
使用各种工具ftp、ssh将jar传到服务上



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

为了解决上述问题,修改pom文件将打包方式修改为WAR
17.2. 独立的Tomcat发布 
独立的Tomcat

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"