문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
gradle:organizing_build_logic [2012/10/06 16:34] kwon37xi |
gradle:organizing_build_logic [2015/09/22 17:54] (현재) kwon37xi [apply] |
||
|---|---|---|---|
| 줄 74: | 줄 74: | ||
| * '' | * '' | ||
| - | // build.gralde이 없어도 아래 빌드 스크립트가 존재하는 것으로 간주한다. | + | |
| + | // --build.gralde이 없어도 아래 빌드 스크립트가 존재하는 것으로 간주한다.-- | ||
| + | // 1.6 버전에서는 명시적으로 필요한 것으로 보인다. | ||
| apply plugin: ' | apply plugin: ' | ||
| dependencies { | dependencies { | ||
| 줄 84: | 줄 86: | ||
| 이 말은 '' | 이 말은 '' | ||
| - | 좀 더 복잡한 것이 필요하다면 자신만의 '' | + | 좀 더 복잡한 것이 필요하다면 자신만의 '' |
| * '' | * '' | ||
| + | apply plugin: ' | ||
| repositories { | repositories { | ||
| mavenCentral() | mavenCentral() | ||
| 줄 94: | 줄 96: | ||
| // gradle과 groovy에 관한 의존성은 추가할 필요가 없다. | // gradle과 groovy에 관한 의존성은 추가할 필요가 없다. | ||
| dependencies { | dependencies { | ||
| + | compile gradleApi() | ||
| + | groovy localGroovy() | ||
| testCompile group: ' | testCompile group: ' | ||
| } | } | ||
| 줄 104: | 줄 108: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | ===== JDBC Driver 로딩 못하는 문제 ===== | ||
| + | * Gradle 1.6에서 '' | ||
| + | * http:// | ||
| + | repositories { | ||
| + | mavenCentral() | ||
| + | } | ||
| + | configurations { | ||
| + | driver | ||
| + | } | ||
| + | dependencies { | ||
| + | driver group: ' | ||
| + | } | ||
| + | |||
| + | URLClassLoader loader = GroovyObject.class.classLoader | ||
| + | configurations.driver.each {File file -> | ||
| + | loader.addURL(file.toURL()) | ||
| + | } | ||
| + | |||
| + | // JDBC Driver 사용하는 코드 혹은 custom task/plugin 제작 | ||
| + | </ | ||
| + | |||
| ===== 공유 스크립트 ===== | ===== 공유 스크립트 ===== | ||
| [[: | [[: | ||
| ===== 커스텀 태스크 ===== | ===== 커스텀 태스크 ===== | ||
| - | [[gradle: | + | [[gradle: |
| ===== 커스텀 플러그인 ===== | ===== 커스텀 플러그인 ===== | ||
| [[gradle: | [[gradle: | ||
| 줄 170: | 줄 196: | ||
| </ | </ | ||
| - | 멀티 프로젝트에서는 프로젝트 빌드 스크립트의 의존성이 모든 서브프로젝트에도 적용된다. | + | * 멀티 프로젝트에서는 프로젝트 빌드 스크립트의 의존성이 모든 서브프로젝트에도 적용된다. |
| + | * 멀티 프로젝트에서 최상위 프로젝트의 '' | ||
| ===== Ant 의존성 추가 ===== | ===== Ant 의존성 추가 ===== | ||
| 빌드 스크립트의 외부 의존성 추가 방식으로는 Ant에 의존성을 추가할 수 없다. | 빌드 스크립트의 외부 의존성 추가 방식으로는 Ant에 의존성을 추가할 수 없다. | ||
| 줄 181: | 줄 207: | ||
| dependencies { | dependencies { | ||
| - | // commons-net의 maven pom.xml이 잘못돼 있어서 추가 의존성을 직접 지정해줬다. | + | // ant-commons-net의 maven pom.xml이 잘못돼 있어서 |
| ftpAntTask(" | ftpAntTask(" | ||
| module(" | module(" | ||
| 줄 201: | 줄 227: | ||
| </ | </ | ||
| + | ===== apply ===== | ||
| + | '' | ||
| + | |||
| + | <code groovy> | ||
| + | apply from: ' | ||
| + | </ | ||
| + | |||
| + | 이 방식을 사용할 경우 [[ci: | ||
| + | 아래와 유사한 오류가 발생할 것이다. | ||
| + | < | ||
| + | A problem occurred evaluating script. | ||
| + | Could not open buildscript class cache for script ' | ||
| + | Timeout waiting to lock buildscript class cache for script ' | ||
| + | It is currently in use by another Gradle instance. | ||
| + | Owner PID: unknown | ||
| + | Our PID: 15314 | ||
| + | Owner Operation: unknown | ||
| + | Our operation: | ||
| + | Lock file: / | ||
| + | </ | ||
| + | 이 때 해결책은 빌드 스크립트 URL의 맨 뒤에 Jenkins Job의 이름을 넣어주는 것이다. 마지막의 '' | ||
| + | <code groovy> | ||
| + | apply from: " | ||
| + | </ | ||
| + | |||
| + | '' | ||
| + | ''/ | ||
| + | |||
| + | <code sh> | ||
| + | find / | ||
| + | </ | ||