2017-12-16 3 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........

처음에 I는 PATH 환경 변수를 인쇄

질문은 PATH 환경 변수가 Gradle 스크립트와 터미널에 수학이 있습니까?

게다는 빌드 시스템으로 Gradle을 사용하는 안드로이드를 만들고 있습니다. 그리고 나는 CMake에 의해 빌드 된 C++ 코드를 가지고 있습니다. 그리고 CMake에서 일부 외부 명령을 실행하는 파이썬 스크립트를 실행합니다. 그러나 Gradle이 PATH 변수를 변경하면 해당 명령이 발견되지 않고 오류가 발생합니다. 그것은 전체 경로를 사용하는 옵션을 선택하지 않습니다 같은 그 명령을 실행할 때 : 내가 CMake를 실행하거나 예상대로 파이썬 스크립트가 직접 다음 모든 작품 때

/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

"내 컴퓨터에서는 해당 명령 (프로그램)이 하나의 경로를 가질 수 있습니다. 동료가 다른 경로를 가질 수 있습니다. 따라서 해당 스크립트가 저에게 효과적입니다. , 그를 위해 내기하지 말라. – niparx