springboot项目打包jar包并部署

本文详细介绍如何使用Maven进行项目打包,包括在不同环境下通过命令行或IDEA进行maven打包,以及如何启动和后台运行项目。同时,介绍了如何在多环境配置下启动项目,并提供了Windows和Linux下后台启动项目的命令。此外,还讲解了如何将项目打包成WAR包并在Tomcat上运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

需要在pom.xml文件中添加插件

图片补充:

一、maven命令打包

1、命令窗口cd到根目录(和pom.xmltarget同级),也可在idea工具中选择Terminal

2、执行打包命令 mvn clean package (跳过测试类命令 mvn clean package -Dmaven.test.skip=true)

二、idea插件打包

1、在IDEA右侧Maven Projects栏双击package等待Build Success即可

三、启动项目

打包完成后jar包会生成在项目目录下,具体位置控制台信息会给出:

3.1、单一配置启动

所谓单一配置,就是只有一个环境,开发、测试和生产都用同一个配置文件,启动方式同jar包命令相同。

命令:java -jar xxx.jar

3.2、多环境配置启动

命令:java -jar xxx.jar --spring.profiles.active=xxx

例如,项目中有三个配置文件,分别对应开发、测试和生产环境

application-dev.properties:server.port=8081   (开发环境)

application-test.properties:server.port=8082   (测试环境)

application-prod.properties:server.port=8083 (生产环境)

我想使用开发环境,输入命令:java -jar xxx.jar --spring.profiles.active=dev,这时候端口就变成8081;

我想使用测试环境,输入命令:java -jar xxx.jar --spring.profiles.active=test,这时候端口就变成8082;

我想使用生产环境,输入命令:java -jar xxx.jar --spring.profiles.active=prod,这时候端口就变成8083。

3.3、后台启动(补充)

使用命令:java -jar xxx.jar 这种方式启动有个弊端:一旦窗口关闭,项目也就强制关闭,体验效果很不好。

为了改善这种方式,可以使用后台启动的方式运行jar包。

①Windows下后台启动:

命令:javaw -jar xxx.jar >bootLog.log

注意,是 javaw ,不是 Java ;bootLog.log为自定义输出的日志文件名。

此时,控制台不会显示任何信息,而在当前目录下会生成一个log文件,日志信息会在log文件中生成。关闭控制台,项目依然运行。

打开任务管理器,找到Java应用程序,右键点击“结束任务”即可关闭运行。

②Linux下后台启动:

命令:nohup java -jar xxx.jar &        nohup java -jar xxx.jar >bootLog.log &

第一个命令方式没有自定义log文件名,会在当前目录下自动生成一个名为 “nohup.out” 的文件:

第二个命令方式自定义log文件名,会在当前目录下自动生成当前定义的log文件:

查看日志文件,启动成功后,可以正常访问。

查看当前jar包名的进程,杀死该进程即可关闭运行。

四、打成WAR包(补充)

4.1、初期直接选择war包方式创建项目

创建项目时打包方式直接选择 “war” 

按照上面的打包方式打成war包

将war包复制出来,粘贴到tomcat下的webapps目录下,启动tomcat,可以正常访问项目。

4.2、jar包改war包

①修改pom.xml文件,将项目打成war包

②修改pom.xml文件,移除嵌入式tomcat插件

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <!-- 去除内置的tomcat -->
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
  </exclusions>
</dependency>

或者

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <!-- 去除内置的tomcat -->
  <scope>provided</scope>
</dependency>

③修改pom.xml文件,添加 servlet-api 依赖

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

④自定义类继承 SpringBootServletInitializer 类,重写初始化方法

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(BootJarApplication.class);
	}

}

然后,按照4.1方法打包并放在tomcat下运行。

注意:

1、以war包方式打包,application.properties 或 application.yml 中配置的端口和访问路径将失效;

2、程序默认访问路径为war包文件名

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值