Project 객체
Project 객체에서는 그레이들의 모든 기능에 대하여 프로그래밍 방식으로 접근할 수 있도록 각종 속성 및 메서드 등을 지원하고 있다.
해당 프로젝트의 환경 구성, 의존 관계, 태스크 등의 내용을 Project 객체를 통하여 제어하고 참조할 수 있다.
Project객체는 프로젝트와 build.gradle 파일간에 일대일 대응 관계에 있으며 빌드가 초기화 될 때 그레이들은 빌드를 수행할 프로젝트의 Project객체에 대하여 다음과 같은 생명주기를 갖게 된다.
-
빌드를 수행하기 위한 Settings 객체 생성
-
settings.gradle 스크립트 파일이 있을 경우 Settings 객체와 비교
-
구성된 Settings 객체를 이용하여 Proejct 객체의 계층 구조 생성
-
프로젝트가 멀티 프로젝트 구조일 경우 부모 프로젝트로부터 Project 객체를 생성하고 다음으로 자식 프로젝트의 Project 객체를 생성
TaskContainer - 프로젝트에 추가된 정보를 참조하여 사용할 수 있는 기능을 가짐
- TaskContainer.create() 를 이요하여 클래스 컴파일, 단위 테스트실행, WAR와 같은 압축 등의 작업을 수행
- TaskContainer.getByname() 태스크의 정보 조회
ConfigurationContainer - 프로젝트의 구성을 관리
DependencyHandler - 의존관계를 관리
ArtifactHandler - 프로젝트의 결과물을 관리
RepositoryHandler - 저장공간 관리
[ Project 객체의 속성 ]
속성 |
설명 |
version |
프로젝트나 결과물의 버전(설정 없을 시 unspecified) |
description |
프로젝트 설명 |
name |
프로젝트의 이름 |
state |
프로젝트 빌드 상태(프로젝트 상태의 종류 : NOT EXECUTED, EXECUTING, EXECUTED, FAILED) |
status |
프로젝트 결과물의 상태(프로젝트 결과물 상태의 종류 : NOT EXECUTED, EXECUTING, EXECUTED, FAILED) |
path |
프로젝트 경로(경로 구분자 ':') |
projectDir |
프로젝트 기준 디렉터리 |
group |
프로젝트가 속한 그룹(특별한 경우만 지정, 루트 프로젝트는 공백문자, 하위 프로젝트는 루트 프로젝트나 부모 프로젝트로 지정 |
buildDir |
프로젝트 빌드 디렉터리(모든 결과물이 생성되는 디렉터리, 기본값 : proejctDir/build) |
plugins |
Project객체에 적용된 플러그인의 컨테이너 |
projectDir |
기준 프로젝트 참조 |
rootProject |
루트 프로젝트 참조 |
parent |
기준 프로젝트의 상위(부모)프로젝트 참조 |
childParents |
기준 프로젝트의 하위(자식) 프로젝트 참조(Map 형식으로 저장) |
allProjects |
기준 프로젝트에 포함된 모든 프로젝트 참조(Set 형식으로 저장) |
subprojects |
기준 프로젝트 이하의 모든 프로젝트 참조(Set 형식으로 저장) |
[Project 객체의 기타 속성]
속성 |
설명 |
defaultTasks |
프로젝트 기본 수행 태스크 설정(빌드 수행 시 태스크 이름이 없을 때 사용) |
repositories |
의존 관계를 확인하고 프로젝트에서 생성 또는 필요한 라이브러리 등을 업로드하기 위해 사용되는 저장소를 생성 및 설정 |
tasks |
프로젝트의 태스크 |
ant |
AntBuilder를 위해 사용되는 속성(빌드 파일에서 Ant를 실행 가능) |
[Project 객체의 API]
API |
설명 |
project(path) |
지정된 경로의 프로젝트에 대하여 설정(상대 경로로 지정 가능) |
project(path, configureClosure) |
지정된 경로의 프로젝트에 대하여 클로저를 사용하여 프로젝트 구성(상대 경로로 지정 가능) |
absoluteProjectPath(path) |
절대 경로를 변환하여 프로젝트 확인 |
apply(closure) |
플러그인이나 스크립트를 적용 |
configure(object, configureClosure) |
클로저를 통하여 설정된 상태를 이용하여 객체를 구성 |
subproject(action) |
해당 프로젝트의 하위 프로젝트를 설정 |
task(name) |
주어진 이름으로 태스크를 생성하고 프로젝트에 추가 |
afterEvaluate(action) |
프로젝트가 평가된 직후 추가 |
beforeEvaluate(action) |
프로젝트가 평가되기 바로 직전 추가 |
'IT > Gradle' 카테고리의 다른 글
그레이들의 라이프 사이클과 그루비 (0) | 2020.05.09 |
---|---|
그레이들과 빌드 (0) | 2020.05.07 |
그레이들 vs 메이븐 (0) | 2020.05.06 |
Gradle 공부의 시작(Gradle 설치) (0) | 2020.05.05 |