gradle打包分离依赖jar

正常打包的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下的包一起分发即可运行

相关推荐

  1. 打包jar服务,如何提取第三方依赖

    2024-01-25 17:08:01       65 阅读
  2. gradle中如何不使用插件将依赖打进jar包】

    2024-01-25 17:08:01       24 阅读
  3. jar依赖相关

    2024-01-25 17:08:01       59 阅读
  4. IDEA 打包jar

    2024-01-25 17:08:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 17:08:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 17:08:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 17:08:01       87 阅读
  4. Python语言-面向对象

    2024-01-25 17:08:01       96 阅读

热门阅读

  1. ubuntu20.04 格式化 硬盘 扩展硬盘

    2024-01-25 17:08:01       61 阅读
  2. Pytest基础

    2024-01-25 17:08:01       66 阅读
  3. 腾讯云个人服务器价格表,2024精准报价

    2024-01-25 17:08:01       76 阅读
  4. Spring和Spring Boot的区别

    2024-01-25 17:08:01       61 阅读
  5. 提升平台工程中的开发人员体验的6大策略

    2024-01-25 17:08:01       56 阅读
  6. 10Docker Compose快速入门

    2024-01-25 17:08:01       52 阅读
  7. vue.js的二十个知识点小结

    2024-01-25 17:08:01       56 阅读
  8. 三维重建衡量指标记录

    2024-01-25 17:08:01       62 阅读