사용자 도구

사이트 도구


gradle

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gradle [2014/09/18 09:27]
kwon37xi
gradle [2022/04/29 22:47] (현재)
kwon37xi [명령 실행과 옵션]
줄 23: 줄 23:
 </code> </code>
  
 +<code sh>
 +# Gradle의 의존성 jar 파일이나 기타 파일들을 저장하는 저장소. 기본은 $HOME/.gradle
 +export GRADLE_USER_HOME="..."
 +</code>
 ===== 실행속도 높이기 ===== ===== 실행속도 높이기 =====
   * ''${HOME}/.gradle/gradle.properties''<code properties>   * ''${HOME}/.gradle/gradle.properties''<code properties>
줄 49: 줄 53:
 </code> </code>
  
-===== build setup ===== +===== build Init ===== 
-  * [[http://www.gradle.org/docs/current/userguide/build_setup_plugin.html|BuildSetup Plugin]]+  * [[https://docs.gradle.org/current/userguide/build_init_plugin.html|Build Init Plugin]]
   * 프로젝트를 시작할 때 ''gradle init''를 실행하면 현재 디렉토리에 Gradle 관련 기본 파일들을 생성해준다.(구버전은 setupBuild)   * 프로젝트를 시작할 때 ''gradle init''를 실행하면 현재 디렉토리에 Gradle 관련 기본 파일들을 생성해준다.(구버전은 setupBuild)
   * Maven 프로젝트 디렉토리에서 실행하면 자동 컨버팅을 실행한다.   * Maven 프로젝트 디렉토리에서 실행하면 자동 컨버팅을 실행한다.
   * 실행시 프로젝트 구조를 Java library로 지정하기(1.7 이후)<code sh>   * 실행시 프로젝트 구조를 Java library로 지정하기(1.7 이후)<code sh>
-gradle init --type java-library+gradle init --type java-application
  
 # --type 을 생략하면 basic 으로 지정된다. # --type 을 생략하면 basic 으로 지정된다.
줄 61: 줄 65:
     * pom     * pom
     * basic     * basic
 +    * java-application
     * java-library     * java-library
 +    * groovy-application
     * groovy-library     * groovy-library
     * scala-library      * scala-library 
줄 73: 줄 79:
 </code> </code>
 ===== 명령 실행과 옵션 ===== ===== 명령 실행과 옵션 =====
 +  * [[https://docs.gradle.org/current/userguide/command_line_interface.html|Gradle Command line interface]]
   * 기본적으로 gradle을 통해 실행되는 단위를 "Task 태스크"라고 한다.(Ant의 target, Maven의 phase와 유사한 개념)   * 기본적으로 gradle을 통해 실행되는 단위를 "Task 태스크"라고 한다.(Ant의 target, Maven의 phase와 유사한 개념)
   * 태스크는 의존 관계에 따라 단 한 번만 실행된다.   * 태스크는 의존 관계에 따라 단 한 번만 실행된다.
줄 89: 줄 96:
   * ''%%--%%gui'' : GUI 환경에서 태스크를 실행하고 관리한다.   * ''%%--%%gui'' : GUI 환경에서 태스크를 실행하고 관리한다.
   * ''%%--%%recompile-scripts'' : build.gradle들 다시 컴파일한다.   * ''%%--%%recompile-scripts'' : build.gradle들 다시 컴파일한다.
 +  * ''%%--%%no-daemon'' : [[gradle:daemon|Gradle Daemon]] 끄기
 +  * ''%%--%%project-cache-dir=/path/to/project-cache'' : 기본적으로 프로젝트 바로 아래에 ''.gradle''로 생성되는 프로젝트별 캐시디렉토리 경로 변경
 +  * ''%%--warning-mode all%%'' : 모든 경고 켜기
   * 환경변수 ''TERM=dumb''으로 하면 Gradle의 진행 상황 로그가 안나오게 된다.   * 환경변수 ''TERM=dumb''으로 하면 Gradle의 진행 상황 로그가 안나오게 된다.
 +  * Task 상세 도움말은 ''help %%--%%task [태스크이름]'' 으로 볼 수 있다.<code sh>
 +gradle help --task wrapper  
 +</code>
 +
 ===== 빌드 정보 확인 ===== ===== 빌드 정보 확인 =====
   * ''projects'' : 프로젝트 목록   * ''projects'' : 프로젝트 목록
줄 196: 줄 210:
     emailNotification = 'build@master.org'     emailNotification = 'build@master.org'
 } }
 +
 +// 가변 Key, 가변 값 형태로 코드를 통해 프라퍼티를 추가할 때는 아래 방식을 사용한다.
 +project.ext['keyname'] = 'value'
  
 task hello << { task hello << {
줄 320: 줄 337:
 1 1
 5 5
 +</code>
 +
 +==== 외부 빌드 스크립트에서 메소드 선언 노출시키기 ====
 +  * [[https://stackoverflow.com/questions/18715137/extract-common-methods-from-gradle-build-script|build.gradle - Extract common methods from Gradle build script - Stack Overflow]]
 +<code>
 +// Define methods as usual
 +def commonMethod1(param) {
 +    return true
 +}
 +def commonMethod2(param) {
 +    return true
 +}
 +
 +// Export methods by turning them into closures
 +ext {
 +    commonMethod1 = this.&commonMethod1
 +    otherNameForMethod2 = this.&commonMethod2
 +}
 +
 +// -- 실제 build.gradle 에서는
 +apply from: "$rootDir/helpers/common-methods.gradle"
 +
 +
 +task myBuildTask {    
 +    def myVar = commonMethod1("parameter1")
 +    otherNameForMethod2(myVar)    
 +}
 </code> </code>
  
줄 340: 줄 384:
   * [[gradle:init_scripts|Gradle Initialization Scripts]]   * [[gradle:init_scripts|Gradle Initialization Scripts]]
   * [[gradle:wrapper|Gradle Wrapper]]   * [[gradle:wrapper|Gradle Wrapper]]
 +  * [[gradle:shell_completion|Gradle Shell Completion]]
   * [[gradle:from_maven|Maven에서 Gradle로]]   * [[gradle:from_maven|Maven에서 Gradle로]]
   * [[gradle:jpa_metamodel_generation|Gradle에서 JPA2 MetaModel 생성]]   * [[gradle:jpa_metamodel_generation|Gradle에서 JPA2 MetaModel 생성]]
gradle.1411000022.txt.gz · 마지막으로 수정됨: 2014/09/18 09:27 저자 kwon37xi