首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【轻量打包jar,减少不必要依赖】

【轻量打包jar,减少不必要依赖】

作者头像
用户1750537
发布2025-08-29 10:39:20
发布2025-08-29 10:39:20
7000
代码可运行
举报
运行总次数:0
代码可运行
在这里插入图片描述
在这里插入图片描述

有几种方法可以减少最终生成的 JAR 文件的大小:

1. 优化依赖

确保只引入项目所需的依赖项,并移除掉未使用的依赖项。可以使用 mvn dependency:analyze 命令来分析项目的依赖关系,并移除掉未使用的依赖。 优化构建:将项目依赖项从传递性依赖改为直接依赖。这样可以减少传递性依赖的数量,提高构建性能。可以使用 mvn dependency:tree 命令来查看项目的依赖树,并根据需要调整依赖关系。

使用更高效的依赖版本:定期检查项目的依赖项,并将其更新为最新的稳定版本。这可以提供更好的性能和功能,同时也可以修复已知的bug和安全漏洞。

缓存依赖项:使用 Maven 的本地仓库或者类似工具(如 Nexus、Artifactory)来缓存项目的依赖项。这样可以避免每次构建都下载依赖项,提高构建速度。

并行构建:如果项目中有多个模块,可以使用 Maven 的并行构建功能来加快构建速度。可以在 <build> 标签下的 <plugins> 标签中配置 <parallel><threadCount> 属性来启用并行构建。

使用构建缓存:通过配置构建缓存,可以避免重复构建已经构建过的模块。可以使用 Maven 的构建缓存插件(如 build-cache-maven-plugin)来启用构建缓存。

使用增量构建:对于大型项目,可以使用增量构建来只构建发生更改的模块,而不是整个项目。可以使用 Maven 的增量构建插件(如 Maven Invoker Plugin)来实现增量构建。

并行测试:如果项目中有大量的单元测试,可以将其并行执行以加快测试速度。可以在 Maven 的 <plugins> 标签中配置 Surefire Plugin 的 <parallel><threadCount> 属性来启用并行测试。

优化测试范围:在构建时只运行必要的测试。可以使用 Maven 的 Surefire Plugin 的 <includes><excludes> 属性来配置运行的测试范围。

使用构建缓存:通过配置构建缓存,可以避免重复构建已经构建过的模块。可以使用 Maven 的构建缓存插件(如 build-cache-maven-plugin)来启用构建缓存。

使用增量构建:对于大型项目,可以使用增量构建来只构建发生更改的模块,而不是整个项目。可以使用 Maven 的增量构建插件(如 Maven Invoker Plugin)来实现增量构建。

并行测试:如果项目中有大量的单元测试,可以将其并行执行以加快测试速度。可以在 Maven 的 <plugins> 标签中配置 Surefire Plugin 的 <parallel><threadCount> 属性来启用并行测试。

优化测试范围:在构建时只运行必要的测试。可以使用 Maven 的 Surefire Plugin 的 <includes><excludes> 属性来配置运行的测试范围。

使用构建缓存:通过配置构建缓存,可以避免重复构建已经构建过的模块。可以使用 Maven 的构建缓存插件(如 build-cache-maven-plugin)来启用构建缓存。

使用增量构建:对于大型项目,可以使用增量构建来只构建发生更改的模块,而不是整个项目。可以使用 Maven 的增量构建插件(如 Maven Invoker Plugin)来实现增量构建。

并行测试:如果项目中有大量的单元测试,可以将其并行执行以加快测试速度。可以在 Maven 的 <plugins> 标签中配置 Surefire Plugin 的 <parallel><threadCount> 属性来启用并行测试。

优化测试范围:在构建时只运行必要的测试。可以使用 Maven 的 Surefire Plugin 的 <includes><excludes> 属性来配置运行的测试范围。

2. 压缩资源文件

将项目中的资源文件进行压缩,减小文件的大小。可以使用工具如 Gzip 或者 Zopfli 来进行资源文件的压缩。

3. 优化打包方式

可以通过设置 JAR 文件的压缩级别来减小文件的大小。在 Maven 中,可以在项目的 pom.xml 文件中设置以下配置来启用更高的压缩级别:

代码语言:javascript
代码运行次数:0
运行
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <archive>
          <compress>true</compress>
          <index>true</index>
          <manifest>
            <addClasspath>true</addClasspath>
          </manifest>
          <manifestEntries>
            <mode>zip</mode>
            <method>deflate</method>
          </manifestEntries>
        </archive>
      </configuration>
    </plugin>
  </plugins>
</build>

4. 移除打包中不必要的文件

可以在 Maven 的 pom.xml 文件中添加以下配置,来排除不必要的文件:

代码语言:javascript
代码运行次数:0
运行
复制
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <configuration>
        <excludes>
          <!-- 排除不需要的文件 -->
          <exclude>**/*.txt</exclude>
          <exclude>**/*.xml</exclude>
        </excludes>
      </configuration>
    </plugin>
  </plugins>
</build>

5. 使用 ProGuard 进行优化

ProGuard 是一个 Java 字节码优化工具,可以帮助减小 JAR 文件的大小。通过移除未使用的代码和压缩字节码文件,可以进一步减小 JAR 文件的大小。

6. 使用模块化打包

将公共的 JAR 文件发布到 Maven 私有仓库或者本地仓库,并在项目中使用 compileOnly 或者 provided 的方式引入这些依赖,并将它们排除在最终的打包过程中。这样可以减小最终生成的 JAR 文件的大小。

根据实际需求,选择合适的方法来减小 JAR 文件的大小。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 优化依赖
  • 2. 压缩资源文件
  • 3. 优化打包方式
  • 4. 移除打包中不必要的文件
  • 5. 使用 ProGuard 进行优化
  • 6. 使用模块化打包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档