Gradle 如何替换Jar中的目录?

Gradle 如何替换Jar中的目录?,gradle,Gradle,我的任务是: task fatJar(type: Jar) { exclude { it.name.startsWith('assets') } from 'build/tmp/hello' // assets/application.css } 我想从源代码中排除assets目录,并从build/tmp/hello路径中添加assets目录,但排除过滤器阻止它,如何解决此问题?类似的操作应该可以: task fatJar(type: Jar) {

我的任务是:

task fatJar(type: Jar) {
    exclude {
        it.name.startsWith('assets')
    }
    from 'build/tmp/hello' // assets/application.css
}

我想从源代码中排除
assets
目录,并从
build/tmp/hello
路径中添加
assets
目录,但排除过滤器阻止它,如何解决此问题?

类似的操作应该可以:

task fatJar(type: Jar) {
    exclude 'assets'
    from ('build/tmp/hello/assets') {
        into 'assets'
    }
}

此代码可能重复,但我得到警告:在任务执行时配置复制任务的子规范已被弃用,并计划在Gradle 4.0中删除。考虑在配置期间配置SPEC,或者使用单独的任务来完成配置。不确定您实际做了什么,我编辑了答案以清楚地表明,我所展示的是任务的配置闭包。