【问题标题】:Accessing variables in build.gradle's section plugins在 build.gradle 的部分插件中访问变量
【发布时间】:2015-04-16 23:05:46
【问题描述】:

我想在插件部分(来自 gradle.properties)中使用变量

plugins {
    id 'java'
    id 'war'
    id 'eclipse-wtp'
    id "com.moowork.grunt" version $grunt_version
    id "org.akhikhl.gretty" version $gretty_version
}

但这行不通。有什么建议吗?

【问题讨论】:

  • 你试过project.grunt_version吗?
  • 是的。也不行。

标签: gradle


【解决方案1】:

通过深入研究 gradle 文档,我发现了这一点:

形式为:

plugins {
    id «plugin id» version «plugin version»
}

其中 «plugin version» 和 «plugin id» 必须是常量、文字、字符串。不允许有其他陈述;它们的存在会导致编译错误。

plugins {} 块也必须是 构建脚本。它不能嵌套在另一个构造中(例如 if 语句或 for 循环)。

...

如果新语法的限制过于严格,推荐的方法是使用 buildscript {} 块来应用插件。

我想我会试一试...

【讨论】:

  • 当我尝试用 buildscript 块包装我的插件块时,我得到“找不到方法插件()”。嗯。
【解决方案2】:

通常,美元只在双引号字符串中使用,以将变量名扩展为它的值。就像 Opal 在他们的评论中指出的那样,您可以在大多数地方仅通过其名称来调用变量。根据变量的作用域,根据变量所属的对象,将其称为variableNameproject.variableName 等可能比较合适。

例如:

def foo = "boo"

以下两个是等价的:

def moreOos = foo + "ooo"
def alsoMoreOos = "${foo}ooo"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多