Gradle 사용해보기


들어가며

Gradle은 보통 프로젝트 빌드에 사용되고 현재 java에서만 살펴보고 있는데

C++ 이나 Python 등등 모든 언어에 개발 빌드가 가능한 듯 합니다.

일단 저는 java에 익숙해서 java 에서 한번 사용해 보려 합니다.

Gradle 도 깊게 파고 들면 너무나 광범위 합니다.

큰 프로젝트들에 모듈만 몇 십개 씩 되는 상황이라면 더더욱 이런 빌드 툴이

빛을 발하게 될겁니다.

언젠간 이런 깊은 부분 까지 알 수 있는 날이 올까요?

솔직히 이런 포스팅을 하면서 참고 글을 쓰는 이유는 머릿속에 정리가 안되기 때문 입니다.

하여 포스팅에 대부분은 제가 무슨 말을 쓰고 있는지도 모를 때가 많습니다. O.Oa

그래서 저는 모두 이해하고 사용하면 좋겠다는 생각이 가슴 속 깊이 하고 있지만

내가 의도하는 바에 도달하게 되면 거기서 마침표를 찍는 경우가 많습니다.

이 포스트에서는 javax 에 mail 라이브러리를 build tool을 이용해 가져오자.

라는 목표를 세웠고 제 의도대로 적용 되기까지에 과정을 적어 보았습니다.

apply plug-in ( snake legs )

apply plug-in 은 gradle 3.4 이상에서 제공되는 문법 입니다.

plug-in 은 스크립트 플러그인 과 바이너리 플러그인 으로 나뉩니다.

바이너리 플러그인은 인터페이스를 구현하고 빌드를 조작하기 위해 사용합니다.

바이너리 플러그인 예시


apply plugin: JavaPlugin

스크립트 플러그인 예시


apply from: 'other.gradle'

사용법

이전 포스팅에서 gradle 파일 생성에 대해 시도해 보았고

Link Gradle File 생성

실제로 library 를 가져와 보는 걸 해보려 합니다.

파일 생성을 하게 되면 프로젝트 root 폴더에

build.gradle 이라는 파일이 생성 됩니다.

이 파일은 groovy 로 선택 했을 경우는 `budild.gradle’ 로 생성 되고

kotlin 으로 선택 했을 경우는 `build.gradle.kts’ 으로 생성 됩니다.

저는 생성 할 때 default 로 생성해서 아무것도 쓰여 있지 않습니다.

그래서 아래와 같이 코딩해 보았습니다.

java 언어에 eclipse 를 사용하므로 apply plugin 지정해 주었고

group 이나 version 들은 임으로 넣었습니다.

sourceCompatibility = 1.8 는 자바 버전을 넣어 줍니다.

repositories {} 안에 mavenCentral() 과 같이 함수형태로 선언해 주면 Central 주소로 repository 가 지정 됩니다.

실제로 Central 이라는 곳에 library 를 가져 오는 듯 합니다.

dependencies {} 안에 제가 사용해야 할 javax 그룹에 mail library 를 가져 옵니다.


/*
 * This file was generated by the Gradle 'init' task.
 *
 * This is a general purpose Gradle build.
 * Learn how to create Gradle builds at https://guides.gradle.org/creating-new-gradle-builds/
 */
 
apply plugin: 'java'
apply plugin: 'eclipse'
  
group = 'com'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
	mavenCentral()
}
 
dependencies {
	implementation('javax.mail:mail:1.4.1')
}

이렇게 build.gradle 파일에 스크립트를 작성하고 gradle을 refresh 하면

Project and External Dependencies 에 프로젝트 라이브러리에 등록 됩니다.

여기 까지 제가 의도한 대로 gradle을 이용하여 라이브러리를 가져 왔습니다.