사용자 도구

사이트 도구


gradle:init_scripts

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
gradle:init_scripts [2012/10/06 16:40]
kwon37xi 새로 만듦
gradle:init_scripts [2014/01/21 10:54] (현재)
kwon37xi [초기화 스크립트 실행]
줄 1: 줄 1:
-====== Gradle Initialization Scripts ====== +====== Gradle Initialization Scripts - 초기화 스크립트 ====== 
-TBD  +  * [[http://www.gradle.org/docs/current/userguide/init_scripts.html|Initialization Scripts]] 
-  * http://www.gradle.org/docs/current/userguide/init_scripts.html+ 
 +===== 기본 사용법 ===== 
 +초기화 스크립트는 Gradle의 다른 스크립트와 유사하다. 하지만 빌드가 시작되기 전에 실행된다. 
 + 
 +  * 시스템 전역 설정. 예를들면 커스텀 플러그인 찾을 위치 지정. 
 +  * 현재 환경에 따른 프라퍼티 설정. 개발 장비, 지속적 통합 장비 등에 따른 프라퍼티 값 바꿔지기 같은 경우. 
 +  * 빌드에 필요한 개발자의 개인적 설정 정보. 
 +  * 장비 전용 설정. JDK 위치 등. 
 +  * 빌드 리스너(build listener)를 등록하여 Gradle 빌드 이벤트를 받는다. 
 +  * 빌드 로거를 등록한다. 
 +  * ''buildSrc'' 프로젝트의 클래스에는 접근할 수 없다. 
 + 
 +===== 초기화 스크립트 실행 ===== 
 +  - ''-I'' 혹은 ''%%--%%init-script'' 뒤에 스크립트 경로를 줘서 실행. 명령행 인자를 여러번 사용하면 여러 초기화 스크립트가 등록된다. 
 +  - ''$USER_HOME/.gradle/init.gradle'' 
 +  - ''$USER_HOME/.gradle/init.d/*.gradle'' 
 +  - ''$GRADLE_HOME/init.d/*.gradle'' 
 + 
 +여러개의 초기화 스크립트가 발견되면 그 모두를 위에 나온 순서대로 다 실행한다. 동일 디렉토리의 스크립트는 알파벳 순서로 실행된다. 
 + 
 +===== 초기화 스크립트 작성하기 ===== 
 +단순 groovy 스크립트이다. 모든 초기화 스크립트는 [[http://www.gradle.org/docs/current/dsl/org.gradle.api.invocation.Gradle.html|Gradle]] 인스턴스를 받는다. 모든 프라퍼티 참조와 메소드 호출은 Gradle 인스턴스로 위임된다. 
 + 
 +==== 프로젝트 구성하기 ==== 
 +초기화 스크립트에서 프로젝트 구성을 할 수도 있다. 이는 멀티 프로젝트 빌드에서 구성하는 것과 유사하다. 이는 프로젝트 자체가 평가되기 전에 실행된다. 
 + 
 +  * 프로젝트 평가전에 먼저 구성 수행하기 ''build.gradle'' <code groovy> 
 +repositories { 
 +    mavenCentral() 
 +
 + 
 +task showRepos << { 
 +    println "All repos:" 
 +    println repositories.collect { it.name } 
 +
 +</code> 
 +  * ''init.gradle'' <code groovy> 
 +allprojects { 
 +    repositories { 
 +        mavenLocal() 
 +    } 
 +
 +</code> 
 +  * 실행하면 <code> 
 +> gradle --init-script init.gradle -q showRepos 
 +All repos: 
 +[MavenLocal, MavenRepo] 
 +</code> 
 + 
 +===== 초기화 스크립트의 외부 의존성 ===== 
 +''initscript()'' 메소드로 초기화 스크립트 전용 외부 의존성을 지정할 수 있다. 
 + 
 +  * 외부 의존성을 선언하는 ''init.gradle'' <code groovy> 
 +initscript { 
 +    repositories { 
 +        mavenCentral() 
 +    } 
 +    dependencies { 
 +        classpath group: 'org.apache.commons', name: 'commons-math', version: '2.0' 
 +    } 
 +
 +</code> 
 + 
 +''initscript()'' 메소드의 인자로 넘어온 클로저는 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/initialization/dsl/ScriptHandler.html|ScriptHandler]] 인스턴스를 구성한다. ''classpath'' 구성에 의존성을 추가하면 된다. [[gradle:dependencies|Gradle Dependencies]] 참조. 
  
gradle/init_scripts.1349509208.txt.gz · 마지막으로 수정됨: 2012/10/06 16:40 저자 kwon37xi