bootJar如何打瘦包

如题,运行./gradlew -Pvaadin.productionMode=true bootJar打包时分离lib和resources。

哎 还得靠自己呀 :joy:

添加插件

plugins {
    id 'org.springframework.boot.experimental.thin-launcher' version '1.0.31.RELEASE'
}

添加任务

tasks.register('copyDependencies', Copy) {
    from configurations.runtimeClasspath
    into "${buildDir}/libs/lib"
}

thinJar {
    dependsOn copyDependencies
    doFirst {
        def libFiles = configurations.runtimeClasspath.files.collect { "lib/${it.name}" }
        manifest {
            attributes(
                    'Main-Class': 'org.springframework.boot.loader.JarLauncher',
                    'Class-Path': libFiles.join(' ')
            )
        }
    }
    doLast {
        println "Dependencies copied to ${buildDir}/libs/lib"
    }
}

执行打包命令 ./gradlew -Pvaadin.productionMode=true thinJar

2 个赞