首页 > 解决方案 > 带有变量 dir 的 gradle fileTree

问题描述

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

ext {
    externalProjectRoot "c:/AnotherProject"
}

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

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

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

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

谢谢!

标签: variablesgradlefiletree

解决方案


您需要使用"而不是'

代替

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

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

在此答案中查看有关使用 ' 和 " 之间区别的更多解释:Gradle Single Quotes vs Double Quotes

Gradle 构建脚本是用 Groovy 编写的。Groovy 有双引号和单引号字符串字面量。主要区别在于双引号字符串文字支持字符串插值


推荐阅读