【问题标题】:How do you pass variables between different gradle scripts?如何在不同的 gradle 脚本之间传递变量?
【发布时间】:2013-06-07 21:33:11
【问题描述】:

我有 2 个 gradle 脚本:

build.gradle 和 其他.gradle

在我的 build.gradle 我有: 申请自:'other.gradle'

task callotherscript << {
  thevar = "Thevariableiwanttogetsomeplaceelse"
  dosomecommand    

在我的 other.gradle 我有:

task dosomecommand(type: Exec) {
  executable "someexe"
  args "aa", "<myarg>" + <thevar>, "<intomydir>"
}

我的问题是:如何从 build.gradle 获取“thevar”,以便在 other.gradle 中使用它。

我运行:gradle callotherscript

我看到的错误信息是:

在任务 ':dosomecommand' 上找不到属性 'thevar'。

我浏览了食谱,我认为每个 gradle 文档都是相关的,但我只是不知道该怎么做。

谢谢

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    您可以声明一个额外属性,例如在project

    ext.foo = "bar"
    

    向下应用的脚本现在可以以foo 的身份访问该属性。

    重要的是要了解任务不调用其他任务,而是依赖其他任务。

    【讨论】:

    • 感谢彼得的回答。几天来,我一直在搞乱“额外属性”设置。而且无论我在“ExtraPropertiesExtention”页面上尝试了多少示例,我总是最终得到:“在根项目'myproject'上找不到属性'myprop'”。这只是我对 gradle 的评价,在脚本之间传递变量应该没有那么难。我想我会远离 gradle 并坚持有效的方法。
    • 从您上面的代码 sn-p 来看,您可能在错误的阶段(执行阶段而不是配置阶段)设置了属性。要成功使用 Gradle,您需要了解这些和其他核心 Gradle 概念(例如任务依赖项)。这当然需要一些努力和时间。
    猜你喜欢
    • 2011-08-06
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    相关资源
    最近更新 更多