🤟致敬读者
- 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉
📘博主相关
📃文章前言
- 🔷文章均为学习工作中整理的笔记。
- 🔶如有错误请指正,共同学习进步。
以下是所有能够将Java项目(特别是Spring Boot项目)打包成JAR包的方式,按工具分类罗列:
1. 使用 Maven
可参考文章:Java项目打包(Maven命令打包)指南(操作简单)
1.1 默认的 maven-jar-plugin
- 特点:生成普通JAR,不包含依赖。
- 步骤:
- 确保
pom.xml
中包含maven-jar-plugin
(默认已集成)。 - 运行命令:
mvn clean package
- 确保
- 生成路径:
target/<project-name>-<version>.jar
1.2 Spring Boot 插件 (spring-boot-maven-plugin
)
- 特点:生成可执行的Fat JAR(包含所有依赖),适用于Spring Boot项目。
- 配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 运行命令:
mvn clean package
- 生成路径:
target/<project-name>-<version>.jar
1.3 Maven Shade Plugin
- 特点:生成包含依赖的Fat JAR,适合非Spring Boot项目。
- 配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <executions> <execution> <phase>package</phase> <goals><goal>shade</goal></goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.example.MainClass</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
- 运行命令:
mvn clean package
1.4 Maven Assembly Plugin
- 特点:自定义打包方式(如包含依赖、资源文件等)。
- 配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.3.0</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.example.MainClass</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals><goal>single</goal></goals> </execution> </executions> </plugin>
- 运行命令:
mvn clean package
2. 使用 Gradle
2.1 默认的 jar
任务
- 特点:生成普通JAR,不包含依赖。
- 配置(
build.gradle
):jar { manifest { attributes 'Main-Class': 'com.example.MainClass' } }
- 运行命令:
./gradlew clean build
- 生成路径:
build/libs/<project-name>-<version>.jar
2.2 Spring Boot 插件 (bootJar
)
- 特点:生成可执行的Fat JAR,专为Spring Boot项目设计。
- 配置(
build.gradle
):plugins { id 'org.springframework.boot' version '2.5.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' }
- 运行命令:
./gradlew clean bootJar
- 生成路径:
build/libs/<project-name>-<version>.jar
2.3 Gradle Shadow Plugin
- 特点:生成包含依赖的Fat JAR,适合非Spring Boot项目。
- 配置(
build.gradle
):plugins { id 'com.github.johnrengelman.shadow' version '7.1.2' } shadowJar { manifest { attributes 'Main-Class': 'com.example.MainClass' } }
- 运行命令:
./gradlew clean shadowJar
3. 手动打包(命令行)
- 特点:无需构建工具,但需手动处理依赖和编译。
- 步骤:
- 编译Java文件:
javac -d ./out src/main/java/com/example/*.java
- 创建清单文件
MANIFEST.MF
:Main-Class: com.example.MainClass Class-Path: libs/dependency1.jar libs/dependency2.jar
- 打包成JAR:
jar cvfm app.jar MANIFEST.MF -C ./out .
- 编译Java文件:
4. 使用 IDE
4.1 IntelliJ IDEA
- 步骤:
File > Project Structure > Artifacts > + > JAR > From modules with dependencies
。- 选择主类并配置依赖。
Build > Build Artifacts
。
可参考文章:Java项目打包(使用IntelliJ IDEA打包Java项目)
4.2 Eclipse
- 步骤:
- 右键项目 >
Export > Java > Runnable JAR File
。 - 选择主类并配置依赖处理方式(如打包依赖到JAR内)。
- 右键项目 >
5. 使用 Ant
- 特点:传统构建工具,需手动编写脚本。
- 配置示例(
build.xml
):<target name="jar" depends="compile"> <jar destfile="build/app.jar" basedir="build/classes"> <manifest> <attribute name="Main-Class" value="com.example.MainClass"/> </manifest> </jar> </target>
- 运行命令:
ant jar
总结推荐
- Spring Boot项目:优先使用
spring-boot-maven-plugin
(Maven)或bootJar
(Gradle)。 - 普通Java项目:
- 需要Fat JAR:用Maven Shade/Assembly插件或Gradle Shadow插件。
- 仅打包代码:用默认的
maven-jar-plugin
或jar
任务。
- 快速验证:可使用IDE的导出功能或命令行手动打包。
📜文末寄语
- 🟠关注我,获取更多内容。
- 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
- 🟢《全栈知识库》技社区,集结全栈各领域开发者,期待你的加入。
- 🔵加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
- 🟣点击下方名片获取更多内容🍭🍭🍭👇