springboot两种打包部署方式
一、打jar部署
- 修改当前项目的packing为 jar 或者在pom.xml 删除 packing 标签
<packing>jar</packing>
-
直接打包运行(打包后文件在target文件中)
- 运行jar包基本条件:必须安装jdk才行
- 上传jar包到服务器
- 直接使用 java -jar 项目.jar 方式运行
注意:这种方式启动项目名和端口都以配置文件中声明的为主
二、打war包部署
-
修改当前项目的packing为 war
<packing>war</packing>
-
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); } }
-
直接把war包放入tomcat中webapps文件下面 启动tomcat bin目录下 start.bat文件即可
注意:这种方式启动项目项目名都以webapps中文件名为主