사용자 도구

사이트 도구


gradle:groovy

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
gradle:groovy [2012/10/06 19:00]
kwon37xi
gradle:groovy [2014/09/11 03:17] (현재)
kwon37xi
줄 31: 줄 31:
 | ''src/main/groovy'' | 운영 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. | | ''src/main/groovy'' | 운영 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. |
 | ''src/test/groovy'' | 테스트 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. | | ''src/test/groovy'' | 테스트 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. |
-| ''src///소스셋///groovy | 소스셋의 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. |+| ''src///소스셋///groovy'' | 소스셋의 Groovy 소스. 접합 컴파일용 Java 소스도 올 수 있다. |
  
 ====== 프로젝트 레이아웃 변경 ====== ====== 프로젝트 레이아웃 변경 ======
줄 38: 줄 38:
     main {     main {
         groovy {         groovy {
-            srcDir 'src/groovy' // 운영 Groovy 소스 디렉토리 변경+            srcDir 'src/groovy' // 운영 Groovy 소스 디렉토리를 추가한다.(기존값에 더하는 것임)
         }         }
     }     }
 } }
 </code> </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.1349517601.txt.gz · 마지막으로 수정됨: 2012/10/06 19:00 저자 kwon37xi