# package-for-maven
**Repository Path**: pkmer/package-for-maven
## Basic Information
- **Project Name**: package-for-maven
- **Description**: maven多模块打包
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-01-08
- **Last Updated**: 2025-01-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 介绍
maven多模块打包,其中`pkmer-user`和`pkmer-order`都是独立的springboot应用,打包之后都可以独立启动其jar包,并且它两都依赖了`pkmer-common`
- [pkmer-common公共包](./pkmer-common)
- [pkmer-user服务](./pkmer-user)
- [pkmer-order服务](./pkmer-order)
# 开发技术版本
- Java17
- SpringBoot3.3.0
- maven 3.9.0
# 打包
```shell
mvn clean package
```
# 执行
> 在要执行的jar目录下,运行
```shell
# 用户服务
java -jar pkmer-user-0.0.1-SNAPSHOT.jar
# 订单服务
java -jar pkmer-order-0.0.1-SNAPSHOT.jar
```
# 附加说明
如打包`pkmer-user`模块之后,依赖的`pkmer-common`包,会自动添加到`pkmer-user-xxx-.jar`下的`BOOT-INF\lib`目录中

> 打包之后`pkmer-user-xxx.jar`中的`MANIFEST.MF`
```js
Manifest-Version: 1.0
Created-By: Maven JAR Plugin 3.3.0
Build-Jdk-Spec: 17
Main-Class: org.springframework.boot.loader.launch.JarLauncher
Start-Class: io.gitee.pkmer.UserApplication
Spring-Boot-Version: 3.3.0
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx
Spring-Boot-Layers-Index: BOOT-INF/layers.idx
```
## 打包插件配置
## 父模块pom.xml配置
```xml
3.3.0
org.springframework.boot
spring-boot-starter-parent
${spring.boot.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
${spring.boot.version}
```
## 服务子模块pom.xml配置
```xml
org.springframework.boot
spring-boot-maven-plugin
${start.class}
JAR
repackage
```
# 参考
- [SpringBoot: Developing Your First Spring Boot Application](https://docs.spring.io/spring-boot/tutorial/first-application/index.html)
- [SpringBoot: Packaging Executable Archives](https://docs.spring.io/spring-boot/maven-plugin/packaging.html)