springboot两种打包部署方式
一、打jar部署
-
修改当前项目的packing为 jar 或者在pom.xml 删除 packing 标签
jar
-
直接打包运行
- 运行jar包基本条件:必须安装jdk才行
- 上传jar包到服务器
- 直接使用 java -jar 项目.jar 方式运行
注意:这种方式启动项目名和端口都以配置文件中声明的为主
二、打war包部署
-
修改当前项目的packing为 war 或者在pom.xml 删除 packing 标签
jar
-
war包部署必须排除tormcat解析jsp依赖加入scope为provided
<!--注意:使用war包部署必须排除tormcat解析jsp依赖加入scope 为provided--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency>
-
war包部署必须排除内嵌tomcat服务器
<!--注意:使用war包部署必须排除内嵌tomcat服务器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- <scope>provided</scope>表明该包只在编译和测试的时候用 --> <scope>provided</scope> </dependency>
-
添加maven插件打包
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 创建一个新的jvm,隔离性好--> <fork>true</fork> <!--增加jvm参数 -Dfile.encoding=UTF-8--> <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments> <!-- 主程序类--> <mainClass>com.example.demo.DemoApplication</mainClass> </configuration> </plugin>
-
war包部署必须继承SpringBootServletInitializer并且覆盖这个方法在方法中指定入口类
@SpringBootApplication //注意:主程序类 extends SpringBootServletInitializer public class DemoApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } //使用war包部署必须继承SpringBootservletInitializer并且覆盖这个方法在方法中指定入口类 @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){ return builder.sources(DemoApplication.class); } }