从 Gradle 中的依赖 jar 或 war 文件复制资源

Copy resources from a dependency jar or war file in Gradle

我们在不同的项目中有多个 war 文件,例如 A 和 B,共享图像等公共资源。公共资源放在单独的项目E中的war模块中。并且这个war文件被添加为项目A和B中所有war模块的依赖项。目前我们正在使用maven 资源插件将这些公共资源复制到 A 和 B 模块的根目录。

我们如何使用 Gradle 执行相同的操作? 我正在尝试使用以下配置,但文件没有复制到生成的 war 文件中。它们仅复制到 build/libs 文件夹。

    configurations {
        commonWebResources
    }
    task extractApi(type: Copy) {
        print 'File : ' + configurations.commonWebResources.singleFile
        from zipTree(configurations.commonWebResources.singleFile)
       into file("${project.buildDir}/libs/")
    }

    compileJava.dependsOn(extractApi)

当我有想要生成任务生成的图像等公共资源时,我执行以下操作:

sourceSets {
    main {
        resources.srcDirs += "src-gen/main/resources"
    }
}
// (include your configurations block and extractApi task here)
processResources.dependsOn extractApi
task cleanGen << {
    file('src-gen/main/resources').delete()
}
clean.dependsOn cleanGen