我正在运行Gradle脚本。一开始我打印PATH环境变量:
println System.getenv( 'PATH' )
输出是:
/usr/bin:/bin:/usr/sbin:/sbin
但真正的PATH环境变量是(从终端打印):
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sh........
问题是,为什么PATH env变量在Gradle脚本和终端中没有数学?
事实是,我正在构建Android,它使用Gradle作为构建系统。我有c ++代码,由CMake构建。在CMake中我运行一些python脚本,它们执行一些外部命令。但是当Gradle更改PATH变量时,找不到那些命令,我收到错误。在执行这些命令时,不能使用完整路径,例如:
/usr/local/bin/my_mega_command
当我直接运行CMake或python脚本时,一切都按预期工作。
Android Studio不会将其环境传递给它生成的Gradle守护程序。通常,我们以缺少自定义环境变量的形式看到这一点,但显然它也会影响PATH
的变化。