What Is Gradle?

1. Gradle이란?

  • Groovy 기반의 빌드 도구
  • 빌드 자동화 시스템 - 작성한 Java 코드를 설정에 맞게 자동으로 빌드
  • Maven vs Gradle
    • gradle은 캐시를 사용하므로 테스트 반복 시 실행 결과 시간의 차이가 큼
    • 스크립트 길이, 가독성 gradle > maven
    • 빌드, 테스트 실행 결과 gradle이 빠름

Build

  • 소스 코드를 실행 가능한 결과물로 만드는 과정
  • Gradle을 사용하면 간편하게 Java 소스 코드를 실행 가능한 jar 파일로 만들어줌

2. build.gradle

  • Gradle 기반의 빌드 스크립트
  • 소스코드를 빌드하고 라이브러리들의 의존성을 쉽게 관리할 수 있음
  • groovy / kotlin
  • 개발시 필요한 외부 라이브러리들을 Gradle이 자동으로 다운로드
  • 다른 라이브러리들과의 의존성을 자동으로 관리 충돌 걱정 없이 개발에만 집중 가능
// 자바를 컴파일하기 위해 java plugin을 설정한다. 
apply plugin: 'java' 
// application으로 컴파일하기 위해 설정한다. 
apply plugin: 'application' 
 
// 저장소를 입력하는 섹션이다. 주로 Maven의 저장소를 그대로 사용한다.
repositories { 
    mavenCentral()
}
// 종속성을 입력하는 섹션이다. 기존에는 compile이 있었으나 3.0버전부터 deprecated되었다.
dependencies {
    // 'group:name:version'순으로 적는다. group: 'junit', name: 'junit', version: '4.13.2'식으로도 가능하다.
    api 'com.google.guava:guava:32.1.2-jre' // 간접 의존, 직접 의존하는 모든 모듈을 rebuild한다
    implementation 'junit:junit:4.13.2' // 직접 의존하는 모듈만 rebuild한다.
} 
application {
    // 메인 class의 위치와 이름을 적는다.
    mainClass = 'package.name.AppClass'
}