springboot 发布项目打成jar包或者war包部署

以前发布项目都是用的打包成war包。因为springboot 内嵌tomcat服务器,所以可以打成jar包部署。先说一下两种打包方式的区别,首先,打成war包是因为之前的传统ssm或ssh项目没有内置服务器,必须借助于外部tomcat运行,所以打成war包或tar包,而springboot项目内置tomcat服务器,所以除了可以打成war外,还可以打成jar包,直接用java命令执行程序。下面记录两种打包方式

1.打成jar包

pom.xml改成

<packaging>jar</packaging>

然后在项目根目录执行命令

出现build success 

windows下运行jar包项目 java -jar xxx.jar(jar包路径)

如果想要window下永久运行 在命令最前面加个 start,像这样start java -jar xxx.jar

在linux下永久运行jar项目就是把start变成nohup

2.打成war包

把packaging变成war,然后剔除内置tomcat(好像不剔除也不要紧,不影响),放到外置tomcat的webapps目录下,然后在tomcat的bin目录下打开 shutup.bat,然后访问路径加上war的名称就好了,比如localhost://8080/mywar/test

Spring Boot中,如果你需要将一个Spring Boot多模块项目打包WAR(通常用于部署到传统的Web应用服务器上,如Tomcat),你需要进行一些配置上的调整。以下是将多模块项目打包WAR的基本步骤: 1. 修改父模块的`pom.xml`文件,将`spring-boot-starter-parent`的打包方式从`jar`改为`war`。同时确保移除`spring-boot-maven-plugin`插件,因为它是用于生可执行的JAR的。 ```xml <packaging>war</packaging> ``` 2. 对于每一个需要打包WAR的子模块,也需要在各自的`pom.xml`中将打包方式改为`war`。 ```xml <packaging>war</packaging> ``` 3. 如果主应用模块(通常是含`main`方法的模块)继承自`spring-boot-starter-web`,则需要移除`spring-boot-starter-tomcat`依赖,因为WAR含自己的Servlet容器。同时,添加一个依赖来代替Tomcat,比如`tomcat-embed-jasper`。 ```xml <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> ``` 注意`scope`应该是`provided`,因为Web服务器(如Tomcat)会提供它。 4. 对于使用了嵌入式Servlet容器的`@SpringBootApplication`主类,需要修改其继承的类。通常需要将继承自`SpringBootServletInitializer`的子类覆盖`configure`方法。这样做是为了配置Spring Boot应用以部署WAR。 ```java @SpringBootApplication public class MyApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyApplication.class); } } ``` 5. 构建项目时使用Maven的`package`命令,这会生WAR而不是JAR。 ```shell mvn clean package ``` 请确保在部署WAR之前,你的应用服务器已经正确配置并且能够支持WAR部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值