문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
gradle:multiproject [2012/10/05 21:07] kwon37xi [프라퍼티와 메소드 상속] |
gradle:multiproject [2022/07/06 10:18] kwon37xi [멀티 프로젝트 단위 테스트간의 의존성] |
||
---|---|---|---|
줄 2: | 줄 2: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ====== 최상위 프로젝트의 이름 ====== | ||
+ | '' | ||
+ | < | ||
+ | rootProject.name = ' | ||
+ | </ | ||
===== 멀티 프로젝트의 기본 ===== | ===== 멀티 프로젝트의 기본 ===== | ||
줄 159: | 줄 165: | ||
</ | </ | ||
- | ==== 프로젝트 필터링 ==== | + | ==== 프로젝트 필터링 |
'' | '' | ||
+ | |||
+ | === 명시하기 === | ||
+ | < | ||
+ | def projects = [project(' | ||
+ | |||
+ | // 특정 프로젝트들에 대한 설정.. | ||
+ | configure(projects) { | ||
+ | .... | ||
+ | } | ||
+ | </ | ||
=== 이름으로 필터링 === | === 이름으로 필터링 === | ||
줄 595: | 줄 611: | ||
* 프로젝트에 정의된 프라퍼티와 메소드는 모든 서브 프로젝트로 상속된다. | * 프로젝트에 정의된 프라퍼티와 메소드는 모든 서브 프로젝트로 상속된다. | ||
* 이 때문에 '' | * 이 때문에 '' | ||
+ | |||
+ | ===== 멀티 프로젝트 단위 테스트간의 의존성 ===== | ||
+ | * 이제는 더이상 아래 방법을 사용하지 말고 [[gradle: | ||
+ | <note warning> | ||
+ | 아래 방법은 사용하지 말 것. | ||
+ | |||
+ | 테스트들 간의 의존성을 거는 것은 어쩔 수 없을때만한다. | ||
+ | |||
+ | 꼭 필요하다면 테스트를 위한 별도 모듈을 만들고 그에 대해 일반적인 의존을 하게 변경한다. | ||
+ | </ | ||
+ | |||
+ | 개인적으로 아래 방법보다는 공통 단위 테스트용 프로젝트를 만들고(예: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ProjectA와 ProjectB의 단위테스트가 존재하는데, | ||
+ | 단위 테스트는 프로젝트간 의존성에서 제외되기 때문이다. | ||
+ | [[http:// | ||
+ | |||
+ | * ProjectB의 '' | ||
+ | dependencies { | ||
+ | testCompile project(': | ||
+ | // 이 방법은 eclipse에서 projecA의 단위 테스트 디렉토리를 라이브러리로 등록하는 문제가 있음. | ||
+ | } | ||
+ | </ | ||
+ | * 위 방법보다는 configuration을 사용하는 다른 방법이 더 유용하다. [[gradle: | ||
+ | configurations { | ||
+ | crosstest | ||
+ | testCompile.extendsFrom crosstest | ||
+ | } | ||
+ | |||
+ | dependencies { | ||
+ | crosstest project(': | ||
+ | } | ||
+ | |||
+ | eclipse { | ||
+ | classpath { | ||
+ | minusConfigurations += configurations.crosstest // 불필요한 classpath 등록 방지 | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== 참조 ===== | ||
+ | * [[https:// | ||
+ |