gradle打包分离依赖jar

本文介绍了如何使用Gradle构建脚本,将项目自身的jar与依赖的资源分离,以减小jar包体积,加快部署速度。通过清理lib目录、复制依赖包并调整manifest文件的Class-Path属性,实现jar包瘦身效果。
摘要由CSDN通过智能技术生成

正常打包的jar是包含项目所依赖的jar包资源,而且大多数场景下的依赖资源是不会频繁的变更的,所以实际把项目自身jar和其所依赖的资源分离可以实现jar包瘦身,减小上传的jar包总大小,能实现加速部署的效果

一 原本结构

二 配置build.gradle

// 清除lib
task clearLib(type: Delete) {
  delete "$buildDir/libs"
}

// 拷贝lib
task copyLib(type: Copy) {
  into "$buildDir/libs/lib"
  from configurations.runtimeClasspath
}
bootJar {
  //archiveBaseName = 'boot'
  //version = '1.0.0'
  archiveFileName = 'boot.jar'

  excludes = ["*.jar"]

  // lib目录的清除和复制任务
  dependsOn clearLib
  dependsOn copyLib

  // 指定依赖包的路径,运行时不再需要指定 java.ext.dir 或 loader.path 参数。
  manifest {
    attributes(
      'Manifest-Version': '1.0',
      'Class-Path': configurations.runtimeClasspath.files.collect { "lib/$it.name" }.join(' ')
    )
  }
}

三 重新打包后目录

打包后build/libs/lib就是依赖的jar包资源

boot.jar就是不含依赖资源的jar包,如果要根据项目名自动生成带版本号的jar包就把 bootJar中的archiveFileName 配置注释掉。

打包后只需把build/libs下的包一起分发即可运行

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值