spring boot 默认打包会内置第三方 jar 合并为一个巨大的 Jar 当然本地编译部署没有任何问题,远程部署网络不佳的情况将是一种灾难,如何避免?本文简明扼要的直接上干货!
// 清除现有的lib目录task clearJar(type: Delete) { delete "$buildDir\\libs\\lib"}// 将依赖包复制到lib目录task copyJar(type: Copy, dependsOn: 'clearJar') { from configurations.compileClasspath into "$buildDir\\libs\\lib"}bootJar { // 例外所有的jar excludes = ["*.jar"] // lib目录的清除和复制任务 dependsOn clearJar dependsOn copyJar // 指定依赖包的路径 // Gradle 执行 bootJar 运行打包结果 Jar 不需要指定 java.ext.dir 或 loader.path // 直接运行 java -jar xxx-1.0.jar manifest { attributes "Manifest-Version": 1.0, 'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ') }}
打造一个 Spring Boot 注解启动控制开关