문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
gradle [2013/12/10 20:39] kwon37xi [Project 객체의 기본 프라퍼티들] |
gradle [2019/06/12 17:37] kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Gradle ====== | ====== Gradle ====== | ||
* http:// | * http:// | ||
+ | * https:// | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
줄 8: | 줄 9: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * 이 문서는 현재 **Gradle 1.2** 사용자 가이드를 기준으로 하고 있다. | + | |
===== 설치 ===== | ===== 설치 ===== | ||
* 설치 파일 압축을 풀고 설치 경로를 '' | * 설치 파일 압축을 풀고 설치 경로를 '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
줄 20: | 줄 22: | ||
export GRADLE_OPTS=" | export GRADLE_OPTS=" | ||
</ | </ | ||
+ | |||
+ | <code sh> | ||
+ | # Gradle의 의존성 jar 파일이나 기타 파일들을 저장하는 저장소. 기본은 $HOME/ | ||
+ | export GRADLE_USER_HOME=" | ||
+ | </ | ||
+ | ===== 실행속도 높이기 ===== | ||
+ | * '' | ||
+ | org.gradle.daemon=true | ||
+ | </ | ||
+ | * 이제부터 Gradle이 데몬으로 떠서 실행되기 때문에 초기 로딩 시간이 줄어든다. | ||
+ | * 3시간동안 Gradle 작업이 없으면 데몬이 자동 종료된다. | ||
+ | |||
===== 스크립트에서 사용할 인증 정보 분리해두기 ===== | ===== 스크립트에서 사용할 인증 정보 분리해두기 ===== | ||
줄 39: | 줄 53: | ||
</ | </ | ||
- | ===== build setup ===== | + | ===== build Init ===== |
- | * [[http://www.gradle.org/docs/ | + | * [[https://docs.gradle.org/ |
- | * 프로젝트를 시작할 때 '' | + | * 프로젝트를 시작할 때 '' |
* Maven 프로젝트 디렉토리에서 실행하면 자동 컨버팅을 실행한다. | * Maven 프로젝트 디렉토리에서 실행하면 자동 컨버팅을 실행한다. | ||
* 실행시 프로젝트 구조를 Java library로 지정하기(1.7 이후)< | * 실행시 프로젝트 구조를 Java library로 지정하기(1.7 이후)< | ||
- | gradle | + | gradle |
# --type 을 생략하면 basic 으로 지정된다. | # --type 을 생략하면 basic 으로 지정된다. | ||
줄 51: | 줄 65: | ||
* pom | * pom | ||
* basic | * basic | ||
+ | * java-application | ||
* java-library | * java-library | ||
+ | * groovy-application | ||
* groovy-library | * groovy-library | ||
* scala-library | * scala-library | ||
줄 63: | 줄 79: | ||
</ | </ | ||
===== 명령 실행과 옵션 ===== | ===== 명령 실행과 옵션 ===== | ||
+ | * [[https:// | ||
* 기본적으로 gradle을 통해 실행되는 단위를 "Task 태스크" | * 기본적으로 gradle을 통해 실행되는 단위를 "Task 태스크" | ||
* 태스크는 의존 관계에 따라 단 한 번만 실행된다. | * 태스크는 의존 관계에 따라 단 한 번만 실행된다. | ||
* '' | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
* 태스크 축약 | * 태스크 축약 | ||
* dist -> di 형태로 최소한 알아볼 수 있는 만큼만 적어도 됨 | * dist -> di 형태로 최소한 알아볼 수 있는 만큼만 적어도 됨 | ||
줄 77: | 줄 94: | ||
* 이 값은 빌드 스크립트에서 프라퍼티이름으로 바로 접근 가능하다. | * 이 값은 빌드 스크립트에서 프라퍼티이름으로 바로 접근 가능하다. | ||
* 프라퍼티 이름에 " | * 프라퍼티 이름에 " | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
+ | * '' | ||
+ | * '' | ||
+ | * 환경변수 '' | ||
+ | * Task 상세 도움말은 '' | ||
+ | gradle help --task wrapper | ||
+ | </ | ||
===== 빌드 정보 확인 ===== | ===== 빌드 정보 확인 ===== | ||
* '' | * '' | ||
줄 91: | 줄 115: | ||
dist.group = ' | dist.group = ' | ||
</ | </ | ||
- | * '' | + | * '' |
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
* '' | * '' | ||
줄 184: | 줄 209: | ||
emailNotification = ' | emailNotification = ' | ||
} | } | ||
+ | |||
+ | // 가변 Key, 가변 값 형태로 코드를 통해 프라퍼티를 추가할 때는 아래 방식을 사용한다. | ||
+ | project.ext[' | ||
task hello << { | task hello << { | ||
줄 195: | 줄 223: | ||
* 모든 빌드 스크립트는 컴파일하여 '' | * 모든 빌드 스크립트는 컴파일하여 '' | ||
* 빌드 파일이 변경되면 그 때 재컴파일 한다. | * 빌드 파일이 변경되면 그 때 재컴파일 한다. | ||
- | * '' | + | * '' |
===== 이것 저것 ===== | ===== 이것 저것 ===== | ||
줄 308: | 줄 336: | ||
1 | 1 | ||
5 | 5 | ||
+ | </ | ||
+ | |||
+ | ==== 외부 빌드 스크립트에서 메소드 선언 노출시키기 ==== | ||
+ | * [[https:// | ||
+ | < | ||
+ | // Define methods as usual | ||
+ | def commonMethod1(param) { | ||
+ | return true | ||
+ | } | ||
+ | def commonMethod2(param) { | ||
+ | return true | ||
+ | } | ||
+ | |||
+ | // Export methods by turning them into closures | ||
+ | ext { | ||
+ | commonMethod1 = this.& | ||
+ | otherNameForMethod2 = this.& | ||
+ | } | ||
+ | |||
+ | // -- 실제 build.gradle 에서는 | ||
+ | apply from: " | ||
+ | |||
+ | |||
+ | task myBuildTask { | ||
+ | def myVar = commonMethod1(" | ||
+ | otherNameForMethod2(myVar) | ||
+ | } | ||
</ | </ | ||
==== 캐싱 cache ==== | ==== 캐싱 cache ==== | ||
- | Gradle은 컴파일한 스크립트를 캐싱한다. 프로젝트에서 처음으로 빌드를 실행하면 '' | + | Gradle은 컴파일한 스크립트를 캐싱한다. 프로젝트에서 처음으로 빌드를 실행하면 '' |
===== 자세히 살펴보기 ===== | ===== 자세히 살펴보기 ===== |