Spring Boot+Grade包装分離libはjarを実行できます。


Spring Boot+Grade包装分離libはjarを実行できます。
最近新しくプロジェクトをオープンしました。SpringBoot 2.14+gradle 5.3を使っています。梱包する時にlibを分離して、ネットでいろいろな方法を探しましたが、成功しませんでした。いつもconfigrations.comでカードを使っています。正しい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