초기화 스크립트는 Gradle의 다른 스크립트와 유사하다. 하지만 빌드가 시작되기 전에 실행된다.
buildSrc
프로젝트의 클래스에는 접근할 수 없다.-I
혹은 --init-script
뒤에 스크립트 경로를 줘서 실행. 명령행 인자를 여러번 사용하면 여러 초기화 스크립트가 등록된다.$USER_HOME/.gradle/init.gradle
$USER_HOME/.gradle/init.d/*.gradle
$GRADLE_HOME/init.d/*.gradle
여러개의 초기화 스크립트가 발견되면 그 모두를 위에 나온 순서대로 다 실행한다. 동일 디렉토리의 스크립트는 알파벳 순서로 실행된다.
단순 groovy 스크립트이다. 모든 초기화 스크립트는 Gradle 인스턴스를 받는다. 모든 프라퍼티 참조와 메소드 호출은 Gradle 인스턴스로 위임된다.
초기화 스크립트에서 프로젝트 구성을 할 수도 있다. 이는 멀티 프로젝트 빌드에서 구성하는 것과 유사하다. 이는 프로젝트 자체가 평가되기 전에 실행된다.
init.gradle
allprojects { repositories { mavenLocal() } }
> gradle --init-script init.gradle -q showRepos All repos: [MavenLocal, MavenRepo]
initscript()
메소드로 초기화 스크립트 전용 외부 의존성을 지정할 수 있다.
init.gradle
initscript { repositories { mavenCentral() } dependencies { classpath group: 'org.apache.commons', name: 'commons-math', version: '2.0' } }
initscript()
메소드의 인자로 넘어온 클로저는 ScriptHandler 인스턴스를 구성한다. classpath
구성에 의존성을 추가하면 된다. Gradle Dependencies 참조.