gradle 具有可变目录的文件树

gradle fileTree with variable dir

我不确定 fileTree 是否支持。我搜索了文档,所有示例都使用了具体(绝对或相对)路径。这就是我想做的。

ext {
    externalProjectRoot "c:/AnotherProject"
}

implementation fileTree(dir: ${externalProjectRoot}/lib', include: '*.jar')

如果我执行以下操作,它会起作用。

implementation fileTree(dir: 'c:/AnotherProject/lib', include: '*.jar')

所以我怀疑 fileTree 函数不支持 dir 属性的变量。如果没有,我还有什么其他选择?

谢谢!

您需要使用 " 而不是 ' :

替换

implementation fileTree(dir: '${externalProjectRoot}/lib', include: '*.jar')

implementation fileTree(dir: "${externalProjectRoot}/lib", include: '*.jar')

请参阅此答案中有关 ' 和 " 用法区别的更多解释:Gradle Single vs Double Quotes :

Gradle build scripts are written in Groovy. Groovy has both double-quoted and single-quoted String literals. The main difference is that double-quoted String literals support String interpolation