본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

Gradle(그레이들)은 Groovy 나 Kotlin 으로 빌드 스크립트를 쓰는 오픈 소스 빌드 자동화 도구로, 실행할 처리 명령들을 태스크로 만들어 태스크 단위로 실행한다.

Gradle 은 2012년 1.0 판이 나왔다. 앞선 자바 빌드 도구인 Ant 의 유연함과 Maven 의 의존성 관리·관례를 함께 가져오면서, 빌드 스크립트를 XML 대신 프로그래밍 언어 문법(DSL)으로 쓰게 했다. 빌드 스크립트는 build.gradle(Groovy DSL) 또는 build.gradle.kts(Kotlin DSL)이다.

구글은 2013년 안드로이드 스튜디오를 내놓으면서 Gradle 을 안드로이드 앱의 공식 빌드 도구로 삼았다. 지금도 안드로이드 프로젝트는 Android Gradle Plugin 으로 빌드한다. 자바·코틀린 서버 프로젝트(스프링 부트 등)에서도 Maven 과 함께 가장 많이 쓰인다.

  • 태스크(Task) : 컴파일, 테스트, JAR 만들기처럼 빌드에서 하는 일 하나하나가 태스크이다. 태스크 사이의 의존 관계를 따라 필요한 태스크만 차례로 실행한다
  • 증분 빌드 : 입력과 출력이 바뀌지 않은 태스크는 다시 실행하지 않는다(UP-TO-DATE)
  • 빌드 캐시 : 이전에 만든 태스크 결과를 다시 쓴다. 원격 캐시로 팀이 결과를 나눠 쓸 수도 있다
  • 데몬 : 빌드 프로세스를 띄워 두고 재사용해 시작 시간을 줄인다
  • 의존성 관리 : Maven 중앙 저장소 등 Maven·Ivy 형식 저장소를 그대로 쓴다
  • Gradle Wrapper : 프로젝트에 넣어 둔 gradlew 스크립트로, 개발자 PC 에 Gradle 을 따로 설치하지 않아도 정해진 판으로 빌드한다
plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'junit:junit:4.13.2'
}
$ ./gradlew build      # compileJava → test → jar 등 build 에 딸린 태스크를 실행
$ ./gradlew tasks      # 실행할 수 있는 태스크 목록

다른 도구와 구분

편집 원본 편집
도구 스크립트 성격
Ant build.xml 태스크를 XML 로 일일이 적는다. 의존성 관리가 없다
Maven pom.xml 정해진 생명주기와 디렉터리 관례, 의존성 관리
Gradle build.gradle(.kts) Groovy·Kotlin DSL, 태스크 그래프, 증분 빌드·캐시. 안드로이드 공식 빌드 도구
젠킨스 Jenkinsfile 빌드 도구가 아니라 자바로 만든 CI 서버. Gradle·Maven 을 불러 빌드를 자동으로 돌린다