【问题标题】:In gradle tasks of type Exec, why do commandLine and executable behave differently?在 Exec 类型的 gradle 任务中,为什么 commandLine 和可执行文件的行为不同?
【发布时间】:2013-03-24 11:23:26
【问题描述】:

有谁知道为什么 Exec 命令行和可执行类型的任务在继承环境变量方面表现不同?

例如,我无法运行此任务,因为 Gradle 无法从我的环境中找到 ruby​​:

task checkRubyVersionCommandLine(type: Exec) {
       commandLine 'ruby -v'
}

但这工作正常:

task checkRubyVersionExecute(type: Exec) {
    executable = 'ruby' 
    args = ['-v']
}

commandLine 有什么用,或者我怎样才能让它从执行它的 shell 中获取变量?为什么可执行文件可以正常工作?

【问题讨论】:

    标签: gradle


    【解决方案1】:

    使用命令行时,需要用空格分割字符串,否则可执行文件变为“ruby -v”,而不是“ruby”。

    所以试试这个吧:

    task checkRubyVersionExecute(type: Exec) {
      commandLine 'ruby', '-v'
    }
    

    查看代码 here 以了解 Exec 任务如何处理此问题。

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多