根项目build.gradle
subprojects{
task setUpEnvironmentDirs()<<{
file("${distDir}").mkdirs()
// FileTree tree = fileTree(dir:'../../../pngcommon/config-tokens', include:"*.properties")
project.tree.each {File currentFile ->
def fileName = "${currentFile.getName().split("\\.")[0]}"
def destinationFile = "${distDir}/${fileName}/"
file("${destinationFile}").mkdirs()
}
}
}
子项目build.gradle
copyEnvironmentProperties{
FileTree tree = fileTree(dir:'../../../pngcommon/config-tokens', include:"*.properties")
}
setUpEnvironmentDirs{
FileTree tree = fileTree(dir:'../../../pngcommon/config-tokens', include:"*.properties")
}
根项目中注释掉的文件树是我尝试移动到子项目的变量,因为每个子项目中的目录路径都不同。我看到了一个类似的帖子并且同样地设置了我,但我一直收到错误。
gradle use variables in parent task that are defined in child
错误:
无法在项目':service'上找到属性'tree'。
答案 0 :(得分:0)
您只需要在声明局部变量的代码中发表评论,并使用tree.each
代替project.tree.each
。相对路径将被正确解析。