그레들 Gradle | |
종류 | 빌드 도구 |
라이선스 | 아파치 라이선스 2.0 |
버전 | 8.10.2 |
홈페이지 |
[clearfix]
1. 개요
오픈 소스로 Maven의 장황한 설정 파일과 에러가 쉽게 나는 문제를 해결하기 위해서 만들어졌다. Groovy 기반의 빌드 도구로 안드로이드 스튜디오의 공식 빌드 도구이기도 하다.지원하는 언어들로는 Java, Groovy, Kotlin 등이 있다.
build.gradle 파일에서 사용할 라이브러리를 지정할 수 있다.
Maven이랑 다른점으로는 라이브러리 파일을 무려 코드로 쓸 수 있다.
2. 빌드 파일
2.1. build.gradle (Groovy)
#!syntax java
// 자바를 컴파일하기 위해 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.12'식으로도 가능하다.
api 'com.google.guava:guava:22.0' //간접 의존, 직접 의존하는 모든 모듈을 rebuild 한다
implementation 'junit:junit:4.12' //직접 의존하는 모듈만 rebuild 한다.
}
application {
// 메인 class의 위치와 이름을 적는다.
mainClass = 'package.name.AppClass'
}
2.2. build.gradle.kts (Kotlin)
#!syntax java
// 자바를 컴파일하기 위해 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.12'식으로도 가능하다.
api("com.google.guava:guava:22.0") //간접 의존, 직접 의존하는 모든 모듈을 rebuild 한다
implementation("junit:junit:4.12") //직접 의존하는 모듈만 rebuild 한다.
}
application {
// 메인 class의 위치와 이름을 적는다.
mainClass.set("package.name.AppClass")
}
2.3. 플러그인
Gradle 프로젝트에 더 도움을 줄 수 있도록 플러그인을 적용 할 수 있다.플러그인은 Binary Plugin[1]이나 Script Plugin[2]으로 나눌 수 있다.
2.3.1. 바이너리 플러그인 적용법
2.3.1.1. 코어 플러그인 적용법
코어 플러그인이란 Gradle에 내장된 기본 플러그인이다.코어 플러그인으로는 application, java 같은 게 있다.
- [Groovy]
#!syntax java plugins { id 'java' }
- [Kotlin]
#!syntax java plugins { java // 참고로 Kotlin에서 이용하는 키워드라면 앞뒤에 `를 추가해야합니다. }
2.3.1.2. 커뮤니티 플러그인 적용법
여기서 말하는 커뮤니티 플러그인이란 Plugin Portal에 저장된 플러그인을 말한다.- [Groovy]
#!syntax java plugins { id 'com.jfrog.bintray' version '1.8.5' }
- [Kotlin]
#!syntax java plugins { id("com.jfrog.bintray") version "1.8.5" }