2017-12-16 18 views
0

私はGradleスクリプトを実行しています。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環境変数を印刷します

質問は、PATH環境変数がGradleスクリプトと端末の数学?

これは、ビルドシステムとしてGradleを使用するAndroidをビルドすることです。そして私はCMakeによってビルドされたC++コードを持っています。そしてCMakeではいくつかの外部コマンドを実行するいくつかのpythonスクリプトを実行します。しかし、GradleがPATH変数を変更すると、それらのコマンドが見つからず、エラーが発生します。私が直接、CMakeのまたはPythonスクリプトを実行すると、予想通り、その後、すべての作品

/usr/local/bin/my_mega_command

:これらのコマンドを実行するときには次のように、完全なパスを使用するためのオプションではありません。

+0

Gradleタスクは、コマンドライン、Android Studio、または他の手段で実行していますか? – CommonsWare

+0

@CommonsWare良い質問です。チェック。私はAndroid Studioからビルドの問題を持っています(ビルド - >プロジェクトを作る)。ターミナルからGradleビルドコマンドを実行すると、動作しています。 私はそれが問題だとは言いませんが、デバッグしたいときは非常に恥ずかしいです:( – niparx

答えて

0

Android Studioは、その環境を生成するGradleデーモンにその環境を渡しません。通常、これはカスタム環境変数がないという形で表示されますが、明らかにそれはPATHの変更にも影響します。

+0

だから、オプションはパス変数をgradle.propertiesに追加してPATH env変数に追加しますか? – niparx

+0

@niparx:ビートしています。なぜ、「これらのコマンドを実行するときに、フルパスを使用するオプションではない」という理由が明確ではない。起動しているコマンドに対して 'PATH'を変更できるかどうかわからない – CommonsWare

+0

"私のマシンでは、これらのコマンド(プログラム)は1つのパスを持つことができます。私の同僚は別のパスを持つことができるので、そのスクリプトは私にとってはうまくいくでしょう。 、彼には賭けてはいけない。 – niparx

関連する問題