사용자 도구

사이트 도구


gradle:groovy

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gradle:groovy [2012/10/02 19:45]
kwon37xi
gradle:groovy [2014/09/11 03:17] (현재)
kwon37xi
줄 1: 줄 1:
 ====== Gradle Groovy Plugin ====== ====== Gradle Groovy Plugin ======
-TBD+  * [[http://www.gradle.org/docs/current/userguide/groovy_plugin.html|Groovy Plugin]] 
 + 
 +Groovy 플러그인은 [[gradle:java|Gradle Java Plugin]]를 상속하고 Groovy 프로젝트 지원을 추가한 것이다. Groovy 단독 혹은 Groovy/Java 혼합 프로젝트를 지원한다. Java 단독도 가능하다. Java와 Groovy간의 접합(Joint) 컴파일을 지원한다. 
 + 
 +  * ''build.gradle'' <code groovy> 
 +apply plugin: 'groovy' 
 +</code> 
 + 
 +====== 태스크 ====== 
 + 
 +^태스크 이름 ^의존성 ^타입 ^설명 ^ 
 +| compileGroovy | compileJava | [[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.compile.GroovyCompile.html|GroovyCompile]] | groovyc로 그루비 소스 컴파일 | 
 +| compileTestGroovy | compileTestJava | [[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.compile.GroovyCompile.html|GroovyCompile]] | groovyc로 그루티 테스트 소스 컴파일 | 
 +| compile//소스셋//Groovy | compile//소스셋//Java | [[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.compile.GroovyCompile.html|GroovyCompile]] | 주어진 소스셋 컴파일 | 
 +| groovydoc | - | [[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.javadoc.Groovydoc.html|GroovyDoc]] | groovydoc으로 Groovy API 문서 생성 | 
 + 
 +Groovy 플러그인은 기존 Java 플러그인의 태스크에 다른 의존성을 추가한다. 
 + 
 +^태스크 이름 ^ 의존성 ^ 
 +| classes | compileGroovy | 
 +| testClasses | compileTestGroovy | 
 +| //소스셋//Classes | compile//소스셋//Groovy | 
 + 
 +====== 프로젝트 레이아웃 ====== 
 +Groovy 소스 디렉토리에는 groovy와 java 소스코드가 올 수 있다. Java 소스 디렉토리에는 java 소스 코드만 올 수 있다. 아래 목록의 디렉토리가 꼭 있을 필요는 없다. 
 + 
 +Java 플러그인의 디렉토리는 생략한다. 
 + 
 +^디렉토리 ^의미 ^ 
 +| ''src/main/groovy'' | 운영 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. | 
 +| ''src/test/groovy'' | 테스트 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. | 
 +| ''src///소스셋///groovy'' | 소스셋의 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. | 
 + 
 +====== 프로젝트 레이아웃 변경 ====== 
 +<code groovy> 
 +sourceSets { 
 +    main { 
 +        groovy { 
 +            srcDir 'src/groovy' // 운영 Groovy 소스 디렉토리를 추가한다.(기존값에 더하는 것임) 
 +        } 
 +    } 
 +
 +</code> 
 + 
 +''srcDir''은 [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/SourceDirectorySet.html#srcDir%28java.lang.Object%29|SourceDirectorySet.srcDir()]] 메소드이다. 
 + 
 +====== 의존성 관리 ====== 
 +''groovy'' 라는 의존성 구성이 추가된다. 
 + 
 +  * Gradle과는 무관하게 원하는 Groovy 버전을 선택할 수 있다. 
 +  * Gradle이 컴파일/문서 생성시 사용하는 ''groovyc''와 ''groovydoc''은 지정된 버전의 것을 사용하게 된다. 
 +  * Groovy 버전 지정 ''build.gradle'' <code groovy> 
 +repositories { 
 +    mavenCentral() 
 +
 + 
 +dependencies { 
 +    groovy group: 'org.codehaus.groovy', name: 'groovy', version: '1.7.10' // groovy 구성에 추가한다. 
 +
 +</code> 
 +  * ''lib'' 디렉토리에 groovy JAR들을 둔 상태일 경우 의존성 구성 ''build.gradle'' <code groovy> 
 +repositories { 
 +    flatDir { dirs 'lib'
 +
 + 
 +dependencies { 
 +    groovy module(':groovy:1.6.0') { 
 +        dependency('asm:asm-all:2.2.3'
 +        dependency('antlr:antlr:2.7.7'
 +        dependency('commons-cli:commons-cli:1.2'
 +        module(':ant:1.7.0') { 
 +            dependencies(':ant-junit:1.7.0:jar', ':ant-launcher:1.7.0'
 +        } 
 +    } 
 +
 +</code> 
 + 
 +===== 소스셋 프라퍼티 ===== 
 +Groovy 플러그인은 소스셋에 다음 프라퍼티들을 추가한다. 
 + 
 +[[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.GroovySourceSet.html|GroovySourceSet]] 타입이 선언한 프라퍼티들이다. 
 + 
 +^프라퍼티 이름 ^타입 ^기본값 ^설명 ^ 
 +| groovy | [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/SourceDirectorySet.html|SourceDirectorySet]] (read-only) | not null | 이 소스셋의 Groovy 소스 파일. 모든 *.groovy와 *.java를 포함하며 다른 것들은 제외시킨다. | 
 +|groovy.srcDirs | Set<File> [[gradle:files|Gradle 파일 다루기]] 참조 | [//projectDir///src///name///groovy] | 이 소스셋의 Groovy 소스를 포함하는 디렉토리 목록. Java 소스도 있을 수 있다.]] | 
 +| allGroovy | [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/FileTree.html|FileTree]] (read-only) | not null | 이 소스셋의 모든 Groovy 파일. 오직 ''.groovy'' 파일만 포함한다. | 
 + 
 +Groovy 플러그인은 몇몇 소스셋 프라퍼티들을 수정한다. 
 + 
 +^프라퍼티 이름 ^변경사항 ^ 
 +| allJava | Groovy 소스 디렉토리의 모든 *.java 파일을 이 프라퍼티에 추가시킨다. | 
 +| allSource | Groovy 소스 디렉토리의 모든 소스 파일을 이 프라퍼티에 추가시킨다. | 
 + 
 +===== CompileGroovy ===== 
 +Groovy 플러그인은 프로젝트의 각 소스셋에 [[http://www.gradle.org/docs/current/dsl/org.gradle.api.tasks.compile.GroovyCompile.html|GroovyCompile]] 인스턴스를 추가한다. 이는 ''Compile'' 태스크를 상속한다. 이 태스크는 Ant Groovyc 태스크에 컴파일을 위임한다. 
 + 
 +CompileGroovy의 프라퍼티들은 다음과 같다. 
 + 
 +^태스크 프라퍼티 ^타입 ^기본값 ^ 
 +| classpath | [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/FileCollection.html|FileCollection]] | //소스셋//.compileClasspath | 
 +| source | [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/FileTree.html|FileTree]] | //소스셋//.groovy 
 +| destinationDir | File | //소스셋//.output.classesDir | 
 +| groovyClasspath | [[http://www.gradle.org/docs/current/javadoc/org/gradle/api/file/FileCollection.html|FileCollection]] | groovy configuration | 
 + 
 +===== 컴파일 옵션들 ===== 
 +  * http://nobeans-en.blogspot.de/2009/12/how-to-specify-character-encoding-in.html 
 +  * Groovy 소스 인코딩 지정 <code groovy> 
 +// /src/main/groovy 안의 *.java 인코딩 
 +[compileGroovy, compileTestGroovy]*.options*.encoding = 'UTF-8'  
 +// /src/main/groovy 안의 *.groovy 인코딩 
 +[compileGroovy, compileTestGroovy]*.groovyOptions*.encoding = 'UTF-8'  
 + 
 +// 길게 풀어쓰면 
 +compileGroovy {   
 +    groovyOptions.encoding = defaultEncoding  // affects *.groovy under src/main/groovy   
 +    options.encoding = defaultEncoding        // affects *.java under src/main/groovy   
 +}   
 +</code> 
 +  * [[http://blog.freeside.co/2014/06/24/enabling-groovys-invokedynamic-support-in-gradle/|Enabling Groovy’s “invokedynamic” support in Gradle]]<code groovy> 
 +tasks.withType(GroovyCompile) { 
 +  groovyOptions.optimizationOptions.indy = true 
 +
 +</code> 
 +  * you should use **JDK 7u60** or above to avoid any potential invokedynamic related bugs.
gradle/groovy.1349174758.txt.gz · 마지막으로 수정됨: 2012/10/02 19:45 저자 kwon37xi