我试图告诉gradle具有*.dsl
扩展名的文件应该被编译为groovy文件,所以我添加了一个带有包含模式的源集并更改了编译任务包含属性:
sourceSets {
...
dsl_scripts {
groovy {
include '**/*.dsl'
}
}
}
compileDsl_scriptsGroovy.includes = ['**/*.dsl']
但是当我在调试模式下运行构建时,它会使用以下消息跳过所有*.dsl
个文件:
Skipping task ':compileDsl_scriptsGroovy' as it has no source files
以下行成功输出我尝试编译的所有文件:
println sourceSets.dsl_scripts.allSource.matching({include '**/*.dsl'}).getFiles()
我做错了什么?
修改: 我在gradle源代码中找到了以下代码段:
FileCollection groovyJavaOnly = spec.getSource().filter(new Spec<File>() {
public boolean isSatisfiedBy(File element) {
return element.getName().endsWith(".groovy") || element.getName().endsWith(".java");
}
});
spec.setSource(new SimpleFileCollection(groovyJavaOnly.getFiles()));
是否可以覆盖?