Gradle-다중 프로젝트 빌드
Gradle은 가장 작은 프로젝트와 가장 큰 프로젝트를 쉽게 처리 할 수 있습니다. 소규모 프로젝트에는 단일 빌드 파일과 소스 트리가 있습니다. 더 작고 상호 의존적 인 모듈로 분할 된 프로젝트를 이해하고 이해하는 것은 매우 쉽습니다. Gradle은 다중 프로젝트 빌드 인이 시나리오를 완벽하게 지원합니다.
다중 프로젝트 빌드를위한 구조
이러한 빌드는 모든 모양과 크기로 제공되지만 몇 가지 공통된 특성이 있습니다.
ㅏ settings.gradle 프로젝트의 루트 또는 마스터 디렉토리에있는 파일.
ㅏ build.gradle 루트 또는 마스터 디렉토리의 파일.
고유 한 하위 디렉토리 *.gradle 빌드 파일 (일부 다중 프로젝트 빌드는 하위 프로젝트 빌드 스크립트를 생략 할 수 있음).
빌드 파일의 모든 프로젝트를 나열하려면 다음 명령을 사용할 수 있습니다.
C:\> gradle -q projects
산출:
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks
보고서는 지정된 경우 각 프로젝트에 대한 설명을 표시합니다. 다음 명령을 사용하여 설명을 지정할 수 있습니다. 붙여 넣기build.gradle 파일.
description = 'The shared API for the application'
일반 빌드 구성 지정
안에 build.gradle root_project의 파일에서 일반 구성을 모든 프로젝트에 적용하거나 하위 프로젝트에만 적용 할 수 있습니다.
allprojects {
group = 'com.example.gradle'
version = '0.1.0'
}
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
}
이것은 공통을 지정합니다 com.example.gradle 그룹과 0.1.0모든 프로젝트에 버전. 그만큼subprojects 클로저는 모든 하위 프로젝트에 공통 구성을 적용하지만 루트 프로젝트에는 적용하지 않습니다. allprojects 폐쇄는 않습니다.
프로젝트 별 구성 및 종속성
핵심 ui 과 util 하위 프로젝트에는 자체 build.gradle 특정 요구 사항이있는 경우, 이는 루트 프로젝트의 일반 구성에 의해 아직 적용되지 않았습니다.
예를 들어 ui 프로젝트에는 일반적으로 핵심 프로젝트에 대한 종속성이 있습니다. 따라서 ui 프로젝트에는 자체build.gradle 이 종속성을 지정하는 파일.
dependencies {
compile project(':core')
compile 'log4j:log4j:1.2.17'
}
프로젝트 종속성은 프로젝트 메서드로 지정됩니다.