sping boot 如何将外部引入的jar包打到fat jar里面
时间: 2024-03-16 19:41:22 浏览: 148
如果你使用 Maven 或 Gradle 构建你的 Spring Boot 项目,可以将外部引入的 jar 包打包到 fat jar 里面。下面是两个常用的方法:
### Maven
在 pom.xml 文件中,使用 `maven-shade-plugin` 插件可以将所有依赖打包为一个可执行的 fat jar。在插件配置中,使用 `include` 指定需要打包的 jar 包,使用 `mainClass` 指定启动类。
```xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<finalName>${project.artifactId}-${project.version}</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.example.Application</Main-Class>
</manifestEntries>
</transformer>
</transformers>
<artifactSet>
<includes>
<include>com.example:external-lib:jar:1.0.0</include>
</includes>
</artifactSet>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
### Gradle
在 build.gradle 文件中,使用 `shadow` 插件可以将所有依赖打包为一个可执行的 fat jar。在插件配置中,使用 `include` 指定需要打包的 jar 包,使用 `mainClassName` 指定启动类。
```groovy
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
}
shadowJar {
exclude 'META-INF/*.SF'
exclude 'META-INF/*.DSA'
exclude 'META-INF/*.RSA'
baseName = "${rootProject.name}-${project.name}"
classifier = null
mainClassName = 'com.example.Application'
mergeServiceFiles {
include 'META-INF/services/*'
}
configurations = [project.configurations.compile]
}
dependencies {
implementation 'com.example:external-lib:1.0.0'
}
```
以上是两个常用的方法,可以根据自己的需要进行选择。
阅读全文