Java项目打包方式汇总

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关



📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

以下是所有能够将Java项目(特别是Spring Boot项目)打包成JAR包的方式,按工具分类罗列:


1. 使用 Maven

可参考文章:Java项目打包(Maven命令打包)指南(操作简单)

1.1 默认的 maven-jar-plugin
  • 特点:生成普通JAR,不包含依赖。
  • 步骤
    1. 确保 pom.xml 中包含 maven-jar-plugin(默认已集成)。
    2. 运行命令:
      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. 手动打包(命令行)

  • 特点:无需构建工具,但需手动处理依赖和编译。
  • 步骤
    1. 编译Java文件:
      javac -d ./out src/main/java/com/example/*.java
      
    2. 创建清单文件 MANIFEST.MF
      Main-Class: com.example.MainClass
      Class-Path: libs/dependency1.jar libs/dependency2.jar
      
    3. 打包成JAR:
      jar cvfm app.jar MANIFEST.MF -C ./out .
      

4. 使用 IDE

4.1 IntelliJ IDEA
  • 步骤
    1. File > Project Structure > Artifacts > + > JAR > From modules with dependencies
    2. 选择主类并配置依赖。
    3. Build > Build Artifacts

可参考文章:Java项目打包(使用IntelliJ IDEA打包Java项目)

4.2 Eclipse
  • 步骤
    1. 右键项目 > Export > Java > Runnable JAR File
    2. 选择主类并配置依赖处理方式(如打包依赖到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-pluginjar 任务。
  • 快速验证:可使用IDE的导出功能或命令行手动打包。

📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值