====== Gradle 빌드 환경 설정 ======
* [[http://www.gradle.org/docs/current/userguide/build_environment.html|Gradle Build Environment]] 참조
* ''gradle.properties'' 로 기본 빌드 환경을 설정할 수 있다.
* ''$HOME/.gradle/gradle.properties''
* ''프로젝트홈/gradle.properties''
* 명령행에서 시스템 프라퍼티로 명시 : ''-Dsome.property''
===== buildEnvironment =====
* ''buildEnvironment'' Task로 build 의존성을 확인할 수 있다. (Gradle 2.10 or later)
gradlew buildEnvironment
===== 프라퍼티들 =====
* ''org.gradle.daemon=true/false'' : Gradle 대몬으로 실행할지 여부
* ''org.gradle.java.home''
* ''org.gradle.jvmargs''
===== 시스템 프라퍼티 =====
* 빌드 스크립트에서 ''System.setProperty('키','값')''
* 혹은 gradle.properties에서
systemProp.프라퍼티이름=프라퍼티값
* 현재 ''gradle.properties''에 지정된 시스템 프라퍼티는 ''-D'' 옵션으로 덮어쓰기가 안되는 문제가 있다. [[http://issues.gradle.org/browse/GRADLE-2122|[GRADLE-2122] Can props from gradle.properties be overwritten with -D parameter ? - Gradle Issues]]
===== 분리된 build.gradle 에서 상호간 함수 지정 =====
* ''parent.gradle'' 에서 ''child.gradle'' 을 apply 할때, ''child.gradle''에서 함수를 등록해서 ''parent.gradle''에서 사용하는 경우
* ''parent.gradle''
apply from: 'child.gradle'
childFunction("args...")
* ''child.gradle''
def childFunction(arg1, arg2) {
// do somethings..
}
ext {
// 함수 등록
childFunction = this.&childFunction
}
------------
// 혹은 ext 에 직접 등록
ext.childFunction = { args ->
// do somethings
}
* [[https://stackoverflow.com/questions/27777591/how-to-define-and-call-custom-methods-in-build-gradle|groovy - How to define and call custom methods in build.gradle - Stack Overflow]]
===== Http Proxy =====
* ''gradle.properties''에 다음 추가. Proxy 서버는 알아서 변경.
* ''user'' 이하 생략 가능.
systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=userid
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=userid
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost