如何在Gradle Copy任务中仅对一个“from”执行重命名?

时间:2018-04-05 05:06:40

标签: gradle copy task rename

我正在尝试从单个Gradle Copy任务中的多个“from”位置进行复制。对于其中一个 - 并且只有一个 - 我还想执行重命名操作。

此代码有效:

task dist(type: Copy) {
    from task1
    rename { filename -> filename.replace '-all.jar', '.jar' }
    from task2 { exclude "lib" }
    into "${projectDir}/dist"
}

但重命名操作也会影响task2。我试着这样做:

task dist(type: Copy) {
    from task1 { rename { filename -> filename.replace '-all.jar', '.jar' } }
    from task2 { exclude "lib" }
    into "${projectDir}/dist"
}

但它没有进行重命名操作。 task2上的排除操作按预期工作。可能吗?我在语法中遗漏了什么吗?

1 个答案:

答案 0 :(得分:2)

有人在此处发布了解决方案并在我接受/回复之前将其删除,因此我在此处发布了正确的表单以供将来参考:

task dist(type: Copy) {
    from (task1) { rename { filename -> filename.replace '-all.jar', '.jar' } }
    from (task2) { exclude "lib" }
    into "${projectDir}/dist"
}

谢谢,Opalo!