说明
目前团队通过VPN远程开发,其中一部分服务没有采用Jenkins进行发布,此时只能通过sftp进行上传,而SpringBoot的项目基本上编译出来就有百来兆,其实还是挺花时间的。因此在想应该分离Spring的Lib包,减少每次需要上传的文件。
编译后的目录结构
1 2 3 4
| / --lib |---*.jar --*.jar
|
步骤
主体上只要修改build.gradle。
清理目录
1 2 3
| task clearJar(type: Delete) { delete "$buildDir\\libs\\lib" }
|
拷贝依赖
1 2 3 4
| task copyJar(type: Copy, dependsOn: 'clearJar') { from configurations.compileClasspath into "$buildDir\\libs\\lib" }
|
修改bootjar
主要作用时分离Lib,指定ClassPath
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| bootJar { excludes = ["*.jar"]
dependsOn clearJar dependsOn copyJar
manifest { attributes "Manifest-Version": 1.0, 'Class-Path': project.getConfigurations().compileClasspath.files.collect { "lib/$it.name" }.join(' ') } }
|
参考链接
https://stackoverflow.com/questions/42552511/cannot-change-dependencies-of-configuration-compile-after-it-has-been-resolve
Spring Boot Gradle 瘦身打包 thinJar,分离 lib jar 依赖