背景
一个简单的spring项目打包出来都有70多MB,每次上传到服务器都需要很长时间。如果是上传代码到服务器,由于服务器配置太小【个人开发用】每次build,拉依赖都会导致cpu/内存/磁盘打满 失去响应。
查看jar包,可以发现体积之所以这么大 是因为spring将项目的外部依赖类文件也都放到了jar中。
方案
打包时将外部依赖jar包与项目代码部分分离 这样每次如果不新增依赖 直接上传项目代码jar包即可
gradle 打包配置如下
task clearJar(type: Delete) {
delete "$buildDir\\libs\\lib"
}
task copyJar(type: Copy, dependsOn: 'clearJar') {
from configurations.compileClasspath
into "$buildDir\\libs\\lib"
}
bootJar {
excludes = ["*.jar"]
dependsOn clearJar
dependsOn copyJar
manifest {
attributes "Manifest-Version": 1.0,
'Class-Path': configurations.compileClasspath.files.collect { "lib/$it.name" }.join(' ')
}
}