Spring boot 的两种打包方式(war,jar)及启动方式

本文详细介绍如何将SpringBoot项目打包成jar或war包,并分别在Window和Linux环境下进行部署。包括修改pom.xml配置、引入依赖、配置路径、创建ServletInitializer类、使用IDEA进行打包,以及在不同操作系统中执行jar包。

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

一 如果我们打包成jar包不管是window还是linux启动方式都是一样的

1、在pom.xml修改

    <groupId>com.xxx</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

2、springboot内置不用引入也行引入也不报错

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

3、注意最下面的build这块一定要配置否则打jar的时候会说找不 到主类 

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
					<mainClass>com.xxx.xxxApplication</mainClass>
				</configuration>
			</plugin>
		</plugins>
	</build>

4、在配置文件配置一下路径

#项目属性配置
server.context-path=/demo
server.port=8080

5、需要新建一个类ServletInitializer继承SpringBootServletInitializer 重写configure方法,这是为了打包springboot项目用的。

package com.xxx;

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

public class ServletInitializer extends SpringBootServletInitializer {

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

}

6、打包我用的idea

 

7、直接运行window还是linux启动方式都是一样的然后到这个jar的根目录下执行java -jar demo.jar 

 

二 、打包成war包,如果我们需要把我们的项目像以前部署项目一样部署到外部tomcat

1、在pom.xml修改

    <groupId>com.xxx</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>

2、排除内置tomcat

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>

3、build

<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<fork>true</fork>
				</configuration>
			</plugin>
		</plugins>
	</build>

4、需要新建一个类ServletInitializer继承SpringBootServletInitializer 重写configure方法,这是为了打包springboot项目用的。

package com.xxx;

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

public class ServletInitializer extends SpringBootServletInitializer {

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

}

5、打包方法和上面一样

6、然后把war包放到外部tomcat/webapp里面就行了

 

springboot 主张的就是前后端分离jar包给符合现在的趋势

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值