목차

Gradle

Gradle plugin

Gradle

설치

export GRADLE_OPTS="-Dfile.encoding=UTF-8 -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=256m"



실행속도 높이기

스크립트에서 사용할 인증 정보 분리해두기

build setup

–type 을 생략하면 basic 으로 지정된다.

빌드 정보 확인

task clean « {

}
task run « {

}
</code>

* 멀티 프로젝트에서 각 하위 프로젝트는 자신만의 기본 태스크를 선언할 수 있다. 기본 태스크가 없으면 부모의 기본 태스크를 수행한다.

* 수행할 태스크에 따라 조건 주기

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(release)) {
        // release 라는 태스크를 수행할 예정일때 미리 실행할 코드
    } else {
        // release 라는 태스크를 수행할 예정이 아닐 때 미리 실행할 코드
    }
}

Java 개발하기

다음 java 개발 관련 항목들을 읽어본다.

DSL

Project 객체의 기본 프라퍼티들

변수 선언

ext.javaVersion = '1.7' 한개씩 선언
ext {
여러개 한꺼번에 선언

  springVersion = '3.1.0.RELEASE'
  emailNotification = '[email protected]'

}

가변 Key, 가변 값 형태로 코드를 통해 프라퍼티를 추가할 때는 아래 방식을 사용한다.
project.ext['keyname'] = 'value'

task hello « {
println “javaVersion : ${javaVersion}”
println “springVersion : ${springVersion}”
println “emailNotification : ${emailNotification}”
}
</code>

==== 스크립트 컴파일 ====

* 모든 빌드 스크립트는 컴파일하여 .gradle 에 저장하고 캐시된다.
* 빌드 파일이 변경되면 그 때 재컴파일 한다.
* --recompile-scripts 옵션을 주면 강제 재컴파일 한다.

===== 이것 저것 =====

* http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html

==== 디렉토리 생성 ====

* 여러 태스크에서 특정 디렉토리를 필요로 할 경우에는, 디렉토리 생성 태스크를 만들고 다른 태스크가 그 태스크에 의존하도록 만든다.
<code groovy>
classesDir = new File('build/classes')
task resources « {
classesDir.mkdirs()
do something
}
task compile(dependsOn: 'resources') « {

  if (classesDir.isDirectory()) {
      println '필요한 디렉토리가 존재하네요.'
  }
  // do something

}
</code>

Gradle 프라퍼티와 시스템 프라퍼티

프로젝트 프라퍼티 검사

외부 빌드 스크립트로 프로젝트 구성하기

외부 *.gradle 빌드 스크립트를 만들어서 불러올 수 있다.

임의의 객체 구성하기

configure 메소드로 임의의 객체를 구성할 수 있다.

외부 스크립트로 임의의 객체 구성하기

캐싱 cache

Gradle은 컴파일한 스크립트를 캐싱한다. 프로젝트에서 처음으로 빌드를 실행하면 .gradle 디렉토리가 만들어지고 거기에 컴파일된 스크립트가 들어간다. 다음에 다시 빌드를 실행하면 스크립트에 변경이 없다면 컴파일 해뒀던 것을 실행한다. 그렇지 않으면 재 컴파일을 하고 캐시에 새로운 버전이 들어간다. --recompile-scripts 옵션으로 실행하면 캐시를 삭제하고 모두 다시 컴파일해서 캐시에 새로 저장한다.

자세히 살펴보기

Plugins

읽을꺼리


관련 문서