欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot + Gradle打包分离lib可执行jar

程序员文章站 2022-04-28 22:50:37
...

SpringBoot + Gradle打包分离lib可执行jar

最近新开一个项目,使用的是SpringBoot 2.14 + gradle 5.3,在打包的时候分离lib,网上找了很多方法都不成功,老是卡在configurations.compile这里,总是获取不到正确的jar包路径。最后上google终于找到解决办法,总结整理后简单又好用,特此记录如下:

// 清除现有的lib目录
task clearJar(type: Delete) {
    delete "$buildDir\\libs\\lib"
}

// 将依赖包复制到lib目录
task copyJar(type: Copy, dependsOn: 'clearJar') {
    from configurations.runtime
    into "$buildDir\\libs\\lib"
}

bootJar {
    archivesBaseName = "data-job-mgr-provider"
    archiveVersion = ""
    // 例外所有的jar和配置文件
    excludes = ["*.jar", "application.yml"]
    // lib目录的清除和复制任务
    dependsOn clearJar
    dependsOn copyJar
    // 指定依赖包的路径
    manifest {
        attributes "Manifest-Version": 1.0,
                'Class-Path': configurations.runtime.files.collect { "lib/$it.name" }.join(' ')
    }
}

运行的时候也不需要指定java.ext.dir或loader.path了,直接-jar运行就可以了。

java -jar data-job-mgr-provider.jar --spring.config.location=[conf-path]/application.yml