Gradle始终跳过复制任务

时间:2016-05-06 20:17:29

标签: gradle

我有一个像这样的目录结构:

./
    bar/
    build.gradle
    foo/
        asdf.txt

build.gradle的内容是:

task qwer(type: Copy) << {
    def from_dir = "foo"
    def dest_dir = "bar"
    println "From: " + from_dir
    println "To: " + dest_dir
    from(from_dir)
    into(dest_dir)
    include "*.txt"
}

当我从该顶级目录中执行gradle qwer时,gradle打印出:qwer任务是最新的并且构建成功,但bar/仍然为空,那些两个println命令似乎从未打印过任何内容。

添加--info开关后,gradle会报告此信息:

Skipping task ':qwer' as it has no source files.

我已尝试将其更改为包含"*""asdf.txt",并且我已尝试完全删除包含行,但所有结果都相同。

使用Kubuntu 14.04上的Gradle 2.13,Java 1.8.0_66和Groovy 1.4.4。

那么我需要做些什么才能让gradle实际复制文件?

1 个答案:

答案 0 :(得分:2)

这适用于Gradle 2.12。原文中的<<是个问题,因为在这种情况下我们不想要 doLast 行为(我们要定义任务):

task qwer(type: Copy) {
    def from_dir = "foo"
    def dest_dir = "bar"
    println "From: " + from_dir
    println "To: " + dest_dir
    from(from_dir)
    into(dest_dir)
    include "*.txt"
}