【问题标题】:Gradle task with argument带参数的 Gradle 任务
【发布时间】:2020-10-22 10:05:18
【问题描述】:

我有一个任务,比如:

task doSomething(type: Exec){

   commandLine "cmd", "/c", "flavour"

}

我怎样才能创建一个特定的变量并将其传递给这个方法? 我尝试过这样的事情:

task doSomething(type: Exec, myVariable: String){
    
       commandLine "cmd", "/c", "$myVariable"
    
    }

但它不起作用

我想在 productFlavours 中赋予这个值,例如:

productFLavors {

flavor1{
myVariable = "flavor1"
}

flavour2{
myVariable = "flavor2"
}

}

我尝试了所有方法,但仍然出现错误:/

【问题讨论】:

    标签: android gradle groovy


    【解决方案1】:

    看起来您将 bash/groovy 字符串插值与仅使用变量混淆...

    试试:

    task doSomething(type: Exec) {
           commandLine "cmd", "/c", myVariable
    }
    
    ./gradlew doSomething -P myVariable="something"
    

    【讨论】:

    • “无法创建任务'doSomething':任务定义中的未知参数:[myVariable]
    • 用工作解决方案更新了评论。另见stackoverflow.com/questions/11696521/…
    • 很好,但是如果您想以这种方式运行任务,您是否也知道如何传递参数:preBuild.dependsOn doSomething - 来自 gradle,而不是命令行
    • docs.gradle.org/current/userguide/… 全部都在文档中 :) 你会发现谷歌搜索“dependsOn gradle”可能会返回 1000 个可以轻松适应的示例
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 2016-06-21
    • 2014-01-03
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多