我如何创建一个 gradle 任务以使用 Spring boot "bootWar" 插件生成爆炸 war?

How can I create a gradle task to generate exploded war with Sprint boot "bootWar" plugin?

我使用 "org.springframework.boot" 插件并使用 bootWar 任务为我的 spring 启动项目生成一个 war 文件。 我想要一个创建此 war 文件的分解版本的任务。

使用 'war' 插件的标准方法是:

task explodedWar(type: Sync) {
    into "${war.archivePath.parentFile.getAbsolutePath()}/exploded/${war.archivePath.name}"
    with war
}

我如何使用 spring-boot/bootWar 插件做同样的事情?

试试:

task explodeBootWar(type: Sync) {
    dependsOn bootWar
    into "$buildDir/boot_war_exploded"
    from project.zipTree(bootWar.archiveFile)
}

您可以在正常的 war 任务上使用 with 方法,因为它基本上只是一个 copySpec。但是,bootWar 任务会做一些额外的事情,因此您必须构建并解压缩实际的存档。