느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail
Published 2020. 5. 10. 21:02
그레이들(Gradle) Project 객체 IT/Gradle

Project 객체

Project 객체에서는 그레이들의 모든 기능에 대하여 프로그래밍 방식으로 접근할 수 있도록 각종 속성 및 메서드 등을 지원하고 있다. 

 

해당 프로젝트의 환경 구성, 의존 관계, 태스크 등의 내용을 Project 객체를 통하여 제어하고 참조할 수 있다.

 

Project객체는 프로젝트와 build.gradle 파일간에 일대일 대응 관계에 있으며 빌드가 초기화 될 때 그레이들은 빌드를 수행할 프로젝트의 Project객체에 대하여 다음과 같은 생명주기를 갖게 된다.

  • 빌드를 수행하기 위한 Settings 객체 생성

  • settings.gradle 스크립트 파일이 있을 경우 Settings 객체와 비교

  • 구성된 Settings 객체를 이용하여 Proejct 객체의 계층 구조 생성

  • 프로젝트가 멀티 프로젝트 구조일 경우 부모 프로젝트로부터 Project 객체를 생성하고 다음으로 자식 프로젝트의 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
profile

느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라

@주현태

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!