有谁知道为什么在Exec命令行和可执行文件类型的任务中,在继承环境变量方面表现不同?
例如,我无法运行此任务,因为Gradle无法从我的环境中找到ruby:
task checkRubyVersionCommandLine(type: Exec) {
commandLine 'ruby -v'
}
Run Code Online (Sandbox Code Playgroud)
但这很好用:
task checkRubyVersionExecute(type: Exec) {
executable = 'ruby'
args = ['-v']
}
Run Code Online (Sandbox Code Playgroud)
什么是commandLine,或者如何让它从它执行的shell中获取变量?为什么可执行文件才有效?
Hie*_*mus 43
使用commandLine时,需要在空格上拆分字符串,否则可执行文件变为'ruby -v',而不是'ruby'.
所以试试这个:
task checkRubyVersionExecute(type: Exec) {
commandLine 'ruby', '-v'
}
Run Code Online (Sandbox Code Playgroud)
请参阅此处的代码以了解Exec任务如何处理此问题.
| 归档时间: |
|
| 查看次数: |
37561 次 |
| 最近记录: |