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"