当前位置:   article > 正文

【轻量打包jar,减少不必要依赖】_java 单个java文件打包成jar,剔除多余依赖

java 单个java文件打包成jar,剔除多余依赖

在这里插入图片描述
有几种方法可以减少最终生成的 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 文件中设置以下配置来启用更高的压缩级别:

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

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

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

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

5. 使用 ProGuard 进行优化

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

6. 使用模块化打包

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/376312
推荐阅读
相关标签
  

闽ICP备14008679号