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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐