문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
gradle:dependencies [2014/08/04 15:20] kwon37xi [provided] |
gradle:dependencies [2019/06/03 15:48] kwon37xi |
||
---|---|---|---|
줄 89: | 줄 89: | ||
* 단, Maven Repository 일 때만 그렇다(Maven 자체의 기본정책). | * 단, Maven Repository 일 때만 그렇다(Maven 자체의 기본정책). | ||
* Ivy Repository는 SNAPSHOT이라도 '' | * Ivy Repository는 SNAPSHOT이라도 '' | ||
+ | |||
==== ResolutionStrategy ==== | ==== ResolutionStrategy ==== | ||
[[http:// | [[http:// | ||
줄 118: | 줄 119: | ||
* Maven과 Ivy 모두 특정 jar에 대한 의존성 정보를 기술하는 XML 파일 기술자(descriptor)를 통해 의존성을 관리한다. | * Maven과 Ivy 모두 특정 jar에 대한 의존성 정보를 기술하는 XML 파일 기술자(descriptor)를 통해 의존성을 관리한다. | ||
* Gradle 의존성 분석 엔진은 pom(Maven)과 ivy를 기술자를 모두 지원한다. | * Gradle 의존성 분석 엔진은 pom(Maven)과 ivy를 기술자를 모두 지원한다. | ||
+ | |||
+ | |||
===== 의존성 구성(dependency configurations) ===== | ===== 의존성 구성(dependency configurations) ===== | ||
* Java에서 의존성은 [[http:// | * Java에서 의존성은 [[http:// | ||
줄 123: | 줄 126: | ||
* 프로젝트 구성은 [[http:// | * 프로젝트 구성은 [[http:// | ||
* '' | * '' | ||
+ | |||
+ | |||
==== Java에서는 기본적으로 네 가지 configuration이 존재한다 ==== | ==== Java에서는 기본적으로 네 가지 configuration이 존재한다 ==== | ||
* '' | * '' | ||
줄 232: | 줄 237: | ||
</ | </ | ||
+ | ==== configuration 다루기 ==== | ||
+ | * [[https:// | ||
+ | * 특정 configuration의 전체 의존성 정보를 보려면 '' | ||
+ | * '' | ||
+ | * 따라서 아래와 같이 이터레이션을 돌면 의존성 정보를 알 수 있다.< | ||
+ | configurations.runtime.resolvedConfiguration.resolvedArtifacts.each { raf -> | ||
+ | def cid = raf.getModuleVersion().getId() | ||
+ | println " | ||
+ | } | ||
+ | |||
+ | </ | ||
==== 클라이언트 모듈 의존성 ==== | ==== 클라이언트 모듈 의존성 ==== | ||
* 클라이언트 모듈 의존성은 빌드 스크립트에서 직접 이행적 의존성을 선언할 수 있게 해준다. 즉, pom.xml 같은 모듈 기술자를 대체하는 기법이다. | * 클라이언트 모듈 의존성은 빌드 스크립트에서 직접 이행적 의존성을 선언할 수 있게 해준다. 즉, pom.xml 같은 모듈 기술자를 대체하는 기법이다. | ||
줄 261: | 줄 277: | ||
dependencies { | dependencies { | ||
runtime files(' | runtime files(' | ||
+ | runtime files(' | ||
runtime fileTree(dir: | runtime fileTree(dir: | ||
} | } | ||
줄 652: | 줄 669: | ||
리포지토리 설정 상태에 따라 캐시의 싱크가 안 맞을 수도 있다. 리포지토리를 잘못 설정했거나, | 리포지토리 설정 상태에 따라 캐시의 싱크가 안 맞을 수도 있다. 리포지토리를 잘못 설정했거나, | ||
- | '' | + | '' |
==== 의존성 캐시 세부 설정 ==== | ==== 의존성 캐시 세부 설정 ==== | ||
줄 673: | 줄 690: | ||
===== provided ===== | ===== provided ===== | ||
- | 아래 | + | * Gradle 2.x 에서 최종적으로 '' |
+ | * [[https:// | ||
+ | * 따라서 | ||
+ | < | ||
+ | compileOnly(' | ||
+ | testCompileOnly(' | ||
+ | </ | ||
- | -- | + | 아래 모든 방법들을 사용하기 보다는 [[gradle: |
+ | * [[http:// | ||
* Spring Source에서 [[gradle: | * Spring Source에서 [[gradle: | ||
+ | * [[https:// | ||
컴파일시에는 클래스패스에 넣지만, 실행/ | 컴파일시에는 클래스패스에 넣지만, 실행/ | ||
줄 749: | 줄 774: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ===== dependencyInsight ===== | ||
+ | * [[http:// | ||
+ | * 특정 의존성에 관해 상세 정보 출력< | ||
+ | ./gradlew dependencyInsight --configuration testCompile --dependency junit | ||
+ | </ | ||
+ | |||
+ | ===== CompositeBuild ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * '' | ||
+ | includeBuild ' | ||
+ | </ | ||
+ | |||
+ | ===== Source Dependency ===== | ||
+ | * [[https:// | ||
===== 참조할 DSL ===== | ===== 참조할 DSL ===== | ||
줄 757: | 줄 799: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | |||
+ | ===== Dependency Management Plugin ===== | ||
+ | https:// | ||
+ | |||
+ |