spring boot 多模块项目打包部署

一.使用mvn package方式打jar包

1.配置maven的环境变量。在PATH中加入E:\devtools\apache-maven-3.3.9\bin

2.CD到项目的的目录。例如我的。K:\javaEE\GiftSpecServer\RenPing,其中RenPing文件夹有多个模块。

3.执行。mvn package命令。

 

二.启动jar测试。

1.找到生成jar包的目录。

在target目录下,jar包的名称在RenPing-web下的pom.xml下配置。

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
    <artifactId>RenPing-Web</artifactId>
   <packaging>jar</packaging> 
   <!--   <packaging>war</packaging> -->
  <parent>
    <groupId>kevin.zou</groupId>
    <artifactId>RenPing</artifactId>
    <version>1.0</version>
  </parent>
  
  <dependencies>
		<dependency>
			<groupId>kevin.zou</groupId>
			<artifactId>RenPing-Common</artifactId>
			<version>1.0</version>
		</dependency>
		
		<!-- model -->
		<dependency>
			<artifactId>RenPing-Model</artifactId>
			<groupId>kevin.zou</groupId>
			<version>1.0</version>
		</dependency>
	</dependencies>
	
	<build>
		<finalName>gift</finalName>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

<finalName>gift</finalName>

2.CD到jar的目录下,执行

java –jar  gift.jar

 

 

Spring Boot 多模块项目中,**打包部署**是一个关键环节。由于模块之间存在依赖关系,打包时需要特别注意**模块顺序、依赖管理、主启动类的位置**等问题。下面我将详细讲解如何正确地 **打包部署 Spring Boot 多模块项目**,包括使用 Maven 打包、模块依赖处理、部署方式等。 --- ## ✅ 一、Spring Boot 多模块项目结构回顾 ``` springboot-multi-module/ ├── pom.xml (父模块) ├── module-common/ # 工具类模块 ├── module-core/ # 核心业务模块 ├── module-pojo/ # 实体类模块 ├── module-config/ # 配置模块(如 JWT、Security) ├── module-web/ # 控制器模块 ├── module-user/ # 用户业务模块 └── application/ # 主启动模块(依赖所有子模块) ``` --- ## ✅ 二、打包流程详解 ### 1. 父模块 `pom.xml` 配置 确保父模块的 `pom.xml` 中: - `<packaging>pom</packaging>` - 所有子模块都列在 `<modules>` 中 - 使用 `<dependencyManagement>` 统一管理依赖版本 ```xml <packaging>pom</packaging> <modules> <module>module-common</module> <module>module-core</module> <module>module-pojo</module> <module>module-config</module> <module>module-web</module> <module>module-user</module> <module>application</module> </modules> ``` --- ### 2. 子模块的 `pom.xml` 配置 每个子模块的 `pom.xml` 中应正确声明依赖关系。 #### 示例:`module-user/pom.xml` ```xml <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>module-pojo</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>module-config</artifactId> <version>1.0.0</version> </dependency> </dependencies> ``` --- ### 3. 主启动模块(application)的 `pom.xml` 主模块应依赖所有子模块,并且包含 Spring Boot 插件用于打包。 ```xml <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>module-common</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>com.example</groupId> <artifactId>module-core</artifactId> <version>1.0.0</version> </dependency> <!-- 其他模块依赖 --> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` --- ## ✅ 三、使用 Maven 打包 ### 1. 清理并打包所有模块 在项目根目录执行: ```bash mvn clean package ``` Maven 会: - 按照 `<modules>` 的顺序编译模块 - 将每个模块安装到本地仓库(`mvn install`) - 最终在 `application/target/` 目录下生成可执行的 `jar` 文件 ### 2. 查看打包结果 进入主模块的 `target` 目录: ```bash cd application/target ls ``` 你会看到一个类似 `application-1.0.0.jar` 的文件,这就是可执行的 Spring Boot jar 包。 --- ## ✅ 四、运行打包好的 jar 文件 ```bash java -jar application-1.0.0.jar ``` > ✅ 说明:这个 jar 包是一个 **fat jar(包含所有依赖)**,可以直接部署到服务器运行。 --- ## ✅ 五、部署方式 ### 1. 本地运行(开发测试) 直接使用 `java -jar` 命令运行即可。 ### 2. Linux 服务器部署 你可以将 jar 文件上传到服务器,并使用如下方式运行: ```bash nohup java -jar application-1.0.0.jar > app.log 2>&1 & ``` - `nohup`:后台运行 - `> app.log`:输出日志到文件 - `2>&1`:标准错误也输出到日志 - `&`:后台执行 ### 3. 使用 systemd 部署(推荐生产环境) 创建 systemd 服务文件: ```bash sudo nano /etc/systemd/system/myapp.service ``` 写入: ```ini [Unit] Description=Spring Boot Application After=syslog.target [Service] User=youruser ExecStart=/usr/bin/java -jar /path/to/application-1.0.0.jar SuccessExitStatus=143 StandardOutput=file:/var/log/myapp.log StandardError=file:/var/log/myapp.err.log [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp ``` --- ## ✅ 六、Docker 部署(推荐微服务/云原生环境) ### 1. 创建 Dockerfile ```dockerfile FROM openjdk:17-jdk-slim COPY application/target/application-1.0.0.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] ``` ### 2. 构建并运行 ```bash docker build -t my-springboot-app . docker run -d -p 8080:8080 my-springboot-app ``` --- ## ✅ 七、注意事项 | 问题 | 解决方案 | |------|----------| | 子模块找不到 | 确保先执行 `mvn install` 安装到本地仓库 | | 启动失败 | 检查 `application.properties` 或日志文件 | | 包太大 | 使用 `spring-boot-maven-plugin` 配置 `excludes` 排除不必要的依赖 | | 多环境配置 | 使用 `application-{profile}.properties` 配置不同环境 | --- ## ✅ 八、总结 | 步骤 | 操作 | |------|------| | 1. 编译打包 | `mvn clean package` | | 2. 获取 jar | 在主模块的 `target/` 下 | | 3. 本地运行 | `java -jar application.jar` | | 4. 服务器部署 | 使用 `nohup` 或 `systemd` | | 5. Docker 部署 | 构建镜像并运行容器 | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值