我正在使用此配置来构建包含所有依赖项的胖jar,但我想从依赖项中排除一些文件:

jar {
    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    doFirst {
        from (configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
            exclude 'META-INF/*'
            exclude 'about.html'
        }
    }
}

使用gradle 3.5,我收到以下警告消息:

不建议在任务执行时配置复制任务的子规范,并计划在Gradle 4.0中将其删除 . 请考虑在配置时配置规范,或使用单独的任务进行配置 .

从gradle 4.0开始,这就成了一个错误(如公布的那样):

您无法在执行时添加子规范 . 请考虑在配置期间配置此任务,或使用单独的任务进行配置 .

如何重写 from ... 语句(错误消息指向该行)以删除错误并获得所需的结果?删除排除块可以修复错误但不是我想要的 .