반응형

1. Gradle이란?

Gradle이란 그래들 재단과 그래들웨어라는 단체에 의해 2009년부터 개발된 빌드 도구(Build Tool)입니다. Groovy로 개발 되었으며 Java개발자들에게 익숙한 Maven에 해당되는 도구입니다. 구글의 안드로이드 사용자를 중심으로 최근 사용자가 많아지고 있는 추세입니다.
과거 Java 초창기에 가장 유명했던 빌드 도구는 Ant 였으나 Ant가 배우고 쉽고 사용하기 쉬운 반면 라이브러리 레파지토리 관리 기능이 없어 Maven이 그 자리를 대체 했었습니다그러나 최근엔 Maven 역시 XML 기반으로 작동되어 설치, 설정 등의 절차가 까다로워 점점 더 많은 사용자들이 Gradle로  옮겨가고 있는 추세 입니다. 
사실 일반 개발자들이 Gradle에 관심을 가지게 된 가장 큰 원인은 Spring 개발 프로젝트의 레파지토리가 Maven에서 Gradle로 옮겨가게 된 것이 가장 큰 이유가 아닌가 싶습니다. Maven과의 차이점을 상세하게 알고 싶으시면 여기를 클릭하시기 바랍니다.

2. Gradle 설치

Gradle을 설치하시기 위해서는 JDK 1.7이상이 설치되어 있어야 합니다. JDK가 설치되어 있지 않다면 설치 후 다음 작업을 수행하시기 바라겠습니다.

2.1.Gradle 다운로드
2018 11월 현재 최신버전의 Gradle v.5.0입니다만, 여기서는 안정화되어 있는 v4.10.2를 예로 들어 보겠습니다. 

Gradle | Releases

Find binaries and reference documentation for current and past versions of Gradle.

gradle.org

위 링크를 클릭하여 gradle v4.10.2를 찾아 complete 버전을 선택해 다운로드 하시기 바랍니다다운로드 받은 파일은 압축을 풀어 설치하고자 하는 위치로 복사 하시기 바랍니다. 여기서는 C:\java-msa아래에 설치했습니다.

2.2.환경설정
Gradle의 설치를 위해 별도의 환경설정이 필요하지는 않으나 윈도우의 PATH에 등록해 디렉토리 어디에서나 gradle을 실행 할 수 있을 수 있게 PATH에 추가 정도만 해 줍니다.
 
[내 컴퓨터]  [속성]  [고급 시스템 설정]  [고급]  [환경변수]  [Path]  [편집]
예) “C:\java-msa\gradle-4.10.2\bin”으로 Path 설정
 

 


2.3.설치확인
윈도우 코맨드 창을 열어 “gradle –v” 명령어를 입력해 설치된 Gradle을 확인해 봅니다.

 

3.Gradle 개발을 위한 프로세스와 gradle 파일 이해

Gradle java, groovy, scala, maven(maven to gradle migration)의 빌드를 지원합니다. Gradle로의 개발을 위해서는 다음의 프로세스를 따릅니다.

gradle이 지원하는 초기화 타입은 링크된 웹 사이트에서 확인 가능합니다.
또한 build.gradle은 다음과 같은 형식의 구조를 가지고 있으며 각각의 내용은 다음과 같습니다.

3.1.project
Gradle에서 Project는 지정된 type(template)에 의해 그 내부 구성요소들이 결정되며 build.gradle 파일에필요한 build 관련 스크립트들을 작성합니다. build.gradle maven pom.xml이나 ant build.xml에 해당합니다.
3.2.task
gradle에서 task는 일련의 작업인 Action들의 집합이며 하나의 task는 다른 task와 상호의존 관계를 가집니다. task를 조금 더 보시고 싶으시면 여기를 클릭하시기 바랍니다.
3.3.action
실제로 build에 관여하는 하나 하나의 작업 스크립트입니다. Action이 모여 task가 되며 task가 모여 project가 됩니다.
3.4.convention
Project를 위한 configuration을 담당합니다. Configuration은 일반적으로 소스파일 위치, 배포파일 위치등을 지정하게 되어 있습니다.
3.5.plugin
Project에 적용될 수 있는 task convention의 미리 define되어 있는 일련의 스크립트입니다. 예를 들어 task에서 java관련 작업을 할 때 사용하는 java plugin은 관련된 convention(src, test, bin등의 위치)에 따라 “build”,”Javadoc”,”jar”등의 미리 define되어 있는 plugin을 추가(add) 할 수 있습니다.
 

4. java 기반 HelloGradle 프로젝트 만들기와 디렉토리/파일 확인

윈도우의 코맨드 창을 열어 java-application type의 탬플릿으로 HelloGradle 프로젝트를 만들어 보겠습니다다음의 창과 같은 수순으로 작업하시기 바라겠습니다.

java-application type HelloGradle 프로젝트가 생성되면 해당 디렉토리에 생성된 파일을 확인해 보시기 바랍니다.


4.1. .gradle 폴더
Gradle이 내부적으로 사용하는 폴더입니다. task관련 파일들이 저장되며 직접 에디트 할 일은 거의 없습니다.
4.2. gralde 폴더
.gradle 폴더와 마찬가지로 Gradle이 내부적으로 사용하는 폴더입니다. Gradle 환경 정리를 위한 “wrapper” 파일이 저장됩니다.
4.3. src 폴더
우리가 지정한 타입인 java-application 타입에서 java 소스를 저장하기 위해 내부적으로 만들어진 디렉토리입니다. Java 소스는 패키지 구조에 따라 src 폴더 아래에 저장하면 됩니다. Gradle src 파일 구조는 Maven src 파일 구조와 동일합니다.
4.3.1. main 폴더
실제 java 소스 파일이 위치 할 디렉토리입니다. 
4.3.2. test 폴더
단위 테스트 파일을 저장하는 디렉토리입니다.
4.4. build.gradle
Gradle project의 기본 빌드 파일입니다. 이 파일 내부에 task, action, convention, plugin등의 정보를 기입합니다. Maven pom.xml , Ant build.xml에 해당하는 파일입니다.
4.5. gradlew/gradlew.bat
Gradle 실행 명령어입니다. Gradlew unix, linux, mac용이며 gradlew.bat window용 실행 파일 입니다.
4.6. settings.gradle
Project의 설정 정보를 기록하는 파일입니다.
 

5.HelloGradle의 Sample 어플리케이션 실행 해 보기

지금 만들어진 HelloGradle프로젝트는 java-application 프로젝트이며 Gradle java-application type의 프로젝트를 생성할 때 App.java라는 Sample 어플리케이션을 자동으로 생성합니다.


5.1. 컴파일
윈도우 커맨드콘솔을 오픈해 HelloGradle 프로젝트의 root 디렉토리로 이동합니다프로그램 컴파일 옵션은 다음과 같습니다.

%PROJECT_ROOT%>gradle compileJava

정상적인 경우 위와 같은 Compile 완료 메시지를 볼 수 있으나 Proxy 서버 설정등이 필요할 때는 다음과 같은 에러를 볼 수 있습니다.


이 경우 윈도우에 설치된 gradle proxy 설정이 별도로 필요합니다.

[윈도우 사용자를 위한 MSA]Gradle proxy 설정

기업환경에서 gradle을 사용하다 보면 proxy 서버 문제로 아래와 같은 에러를 볼 때가 있습니다. 다음과 같...

blog.naver.com


컴파일된 파일은 $PROJECT_ROOT/build/classes/java/main 디렉토리 아래에서 볼 수 있습니다.

5.2 실행
Sample 프로그램은 gradle run을 통해 실행해 볼 수 있습니다.

%PROJECT_ROOT%>gradle run

실행 결과는 아래와 같습니다.


5.3 라이브러리로 만들기
Java class package를 엮어서 jar 파일로 만들 수 있습니다. Gradle에서도 가능합니다.

%PROJECT_ROOT%>gradle jar

만들어진 파일은 $PROJECT_ROOT/build/libs에 프로젝트이름의 jar로 저장된 파일을 찾을 수 있습니다.

 
5.4. 프로젝트 클린
경우에 따라 지금까지 만들어진 class file이나 library 파일을 초기화 하고자 할 때가 있습니다.
gradle clean 명령어를 수행해 이 작업을 수행 할 수 있습니다.

%PROJECT_ROOT%>gradle clean


감사합니다.

반응형

+ Recent posts