springboot gradle打包jar
时间: 2025-05-08 16:57:27 浏览: 24
### 使用 Gradle 将 Spring Boot 项目打包成 JAR 文件
为了实现将 Spring Boot 项目通过 Gradle 打包为 JAR 文件,可以按照以下方式操作:
#### 配置 `build.gradle` 文件
在项目的根目录下找到或创建 `build.gradle` 文件,并添加必要的插件和配置。
```groovy
plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
// 只编译阶段使用的依赖项,不被打包到最终的 JAR 中
compileClasspath('org.springframework.boot:spring-boot-starter-freemarker')
}
```
上述代码中,`implementation` 是用于正常打包的依赖项,而 `compileClasspath` 则表示该依赖仅会在编译时加载,不会被包含在最终生成的 JAR 文件中[^1]。
#### 设置主类路径
为了让生成的 JAR 文件能够正确运行,需要指定应用程序的入口点(即主类)。可以在 `build.gradle` 文件中加入如下配置来定义主类:
```groovy
jar {
manifest {
attributes(
'Main-Class': 'com.wafa.mallServer.LanyiMallServerApplication',
)
}
}
```
此部分确保了当用户尝试执行生成的 JAR 文件时,Java 能够识别并调用正确的启动类[^2]。
#### 构建命令
构建过程可以通过控制台完成。进入项目所在的文件夹,在终端输入以下指令即可开始构建流程而不执行任何单元测试:
```bash
gradle build -x test
```
完成后,生成的目标 JAR 文件会位于 `build/libs/` 下面。
如果希望进一步优化 JAR 文件大小,则考虑采用 **thinJar** 方法。这涉及调整哪些库应该嵌入以及哪些应保持外部链接状态。具体做法已在前面提到过——利用 `compileClasspath` 来排除不必要的内部化依赖关系[^3]。
另外需要注意的是,尽管 thinJar 技术有助于减小部署单位尺寸,但在某些情况下可能会引发诸如 `ClassNotFoundException` 这样的错误。这是因为一些反射机制可能无法正确定位由上下文类加载器管理之外引入的类别资源。解决办法之一便是修改相关代码逻辑以便适配新的环境设定;例如更改获取类实例的方式从静态绑定转向动态装载[^4]。
```java
// 修改前可能导致异常的情况
Class<?> clazz = Class.forName(className);
// 推荐替代方案以规避潜在问题
Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass(className);
```
以上就是关于如何运用 Gradle 对于 Spring Boot 应用程序实施有效的 JAR 归档处理策略的整体介绍。
---
阅读全文
相关推荐


















