我有一个像这样的目录结构:
./
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实际复制文件?
答案 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"
}