gradle打jar包,去掉外部依赖的jar
微服务中每个jar包都包含各自的依赖jar,jar包比较臃肿,如何实现打包时,将依赖的jar包放到外部?
在子项目的build.gradle文件中添加
// 将依赖包复制到lib目录
task copyJar(type: Copy) {
// 清除现有的lib目录
delete "$buildDir\\libs\\lib"
from configurations.runtimeClasspath
into "$buildDir\\libs\\lib"
from configurations.compileClasspath
into "$buildDir\\libs\\lib"
}
// 配置bootJar进行打包
bootJar {
// 排除所有的jar
excludes = ["*.jar"]
// lib目录的清除和复制任务
dependsOn copyJar
// 指定依赖包的路径
manifest {
attributes "Manifest-Version": 1.0,
'Class-Path': configurations.runtimeClasspath.files.collect { "lib/$it.name" }.join(' ')
}
}
jar包启动指定外部依赖
nohup java -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:/data/middleplateform/hicon-area/lib -jar hicon-area-1.0-SNAPSHOT.jar &
其中$JAVA_HOME/jre/lib/ext是固定的,后面追加冒号,冒号后面跟上外部依赖jar包所在路径
jdk的安装参考:
linux系统下安装jdk