Gradle 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제
1. 도구개요 1.1 도구정보요약 도구명 소개 특징 Gradle (http://www.gradle.org) 소프트웨어빌드자동화도구 라이선스 Apache License v2.0 Gradle 을통해소프트웨어패키지나프로젝트의빌드, 테스팅, 퍼블리슁, 배포등을자동화할수있다. Ant 의유연성과기능을 Maven 의의존성관리와조합하여보다효과적인빌드자동화실현 Groovy 에기반한 DSL(Domain Specific Language) 을통해모든종류의빌드를선언적방식으로처리할수있고, 많은부분적절한 Default 값이제공되어편리한적용가능 XML 이아닌 Groovy DSL 을통한선언적빌드 주요기능 Multi-Project 빌드지원 외부의 Maven, Ivy repository 에서로컬의 jar 까지다양한방식의의존성관리지원 실행환경 Windows, Unix, Linux, MacOS 사전설치도구 JDK 1.6+ 카테고리 빌드최신버전 v2.2.1 (2014.11) 관련도구 Ant, Maven, SBT 2
1. 도구개요 1.2 스크린캡쳐및주요기능 빌드스크립트가 xml이아닌그루비로되어있어빌드로직구성및재사용가능 자바, 그루비, 스칼라기반프로젝트 scaffolding 제공 Maven, Ivy, Local File System 등다양한의존성관리지원 Ant, Maven 빌드를 Gradle로전환가능 Gradle Wrapper로 Gradle이설치되지않은곳에서도빌드가능 Maven은 CLI(Command Line Interface) 기반도구로스크린캡쳐할도구화면은없음 build.xml Migration build.gradle builds pom.xml 3
2. 설치및실행 세부목차 2.1 사전설치사항확인 2.2 다운로드 2.3 설치및설정 2.4 설치확인 4
2. 설치및실행 2.1 사전설치사항확인 (1/5) Gradle 은 JDK 1.6 이상을필요로하므로, JDK 의설치여부를확인한다. - Windows 의경우아래와같이 Command 창에서 java version 을실행하여설치된버전을확인한다. 5
2. 설치및실행 2.1 사전설치사항확인 (2/5) - 아래와같이에러가나는경우, 탐색기의 C:\Program Files 폴더또는 C:\Program Files (x86) 폴더에서 Java 폴더가있는지확인한다. - Java 폴더가있다면, 그아래의 jdk/bin 디렉토리에서 java version 실행 - Java 폴더가없다면, 여기에서 JDK 를다운받아설치한다. 6
2. 설치및실행 2.1 사전설치사항확인 (3/5) JDK 경로를환경변수로설정한다. - 아래와같이 제어판 > 시스템 화면의좌측에서 고급시스템설정 을클릭 7
2. 설치및실행 2.1 사전설치사항확인 (4/5) - 아래와같이 시스템속성 창의 고급 탭에서하단의 환경변수 클릭 8
2. 설치및실행 2.1 사전설치사항확인 (5/5) - 사용자변수의 path 를선택하고, 편집 버튼클릭 - 변수값 란의마지막에 ; 를추가하고 JDK 의 bin 폴더경로입력후 확인 예 ) C:\Program Files (x86)\java\jdk1.7.0_11\bin 9
2. 설치및실행 2.2 다운로드 http://www.gradle.org 에서우측의 Download Gradle 클릭하여 zip 파일을다운받는다 10
2. 설치및실행 2.3 설치및설정 (1/2) Gradle 은별도의설치과정없이압축해제로설치가완료된다. 11
2. 설치및실행 2.3 설치및설정 (2/2) Gradle 을쉽게실행할수있도록 GRADLE_HOME/bin 폴더를 path 환경변수에등록한다. - 사전설치사항확인 의내용을참조하여환경변수를설정한다. 12
2. 설치및실행 2.4 설치확인 Command 창에서 gradle v 을실행하면아래와같은결과가나오며 Gradle 이정상적으로설치되었음을확인할수있다. 13
3. 주요기능 세부목차 3.1 Gradle 개요 3.2 Gradle 실행 3.3 주요 Tasks 3.4 javadoc 생성 3.5 jar 생성 3.6 Jenkins 연동 14
3. 주요기능 3.1 Gradle 개요 Gradle 은 Groovy 기반의 DSL(Domain Specific Language) 로스크립트를작성하여빌드를자동화한다. Task 는 Gradle 빌드작업의기본단위로서, 컴파일, Jar 생성, Javadoc 생성등빌드에필요한기능을정의한다. Gradle 은다양한 built-in Task 를제공하고있어사용자는이러한 Task 를원하는대로조립하여빌드를자동화할수있으며, 새로운 Task 를만들수도있다. Gradle 은 gradle 이실행되는디렉토리의 gradle 파일 (ex:build.gradle) 의내용에따라실행할수있는 Task 가정해진다. 15
3. 주요기능 3.2 Gradle 실행 Gradle 은다양한예제를제공하고있으며, 여기서는 GRADLE_HOME/samples/java/quickstart 를통해주요기능을확인한다. GRADLE_HOME/samples/java/quickstart 디렉토리에서 gradle tasks 를실행하면 quickstart 프로젝트에서실행가능한 task 의목록을볼수있다. 16
3. 주요기능 3.3 주요 task quickstart 프로젝트에서사용가능한주요 tasks 는다음과같다. build builddependents buildneeded clean jar javadoc dependencies help projects tasks cleaneclipse eclipse test 프로젝트소스를빌드한다프로젝트와그프로젝트에의존하는모든프로젝트를빌드한다프로젝트와그프로젝트가의존하는모든프로젝트를빌드한다 build 디렉토리를삭제한다 jar 파일을생성한다 Javadoc API 문서를생성한다프로젝트에선언된모든의존관계를표시한다 Gradle 도움말을표시한다프로젝트의하위프로젝트를표시한다프로젝트에서사용가능한모든 task를표시한다 Eclipse 설정파일을모두삭제한다 Eclipse 설정파일을생성한다테스트코드를실행한다 17
3. 주요기능 3.4 javadoc 생성 GRADLE_HOME/samples/java/quickstart 에서 gradle javadoc 를실행한다 18
3. 주요기능 3.4 javadoc 생성 GRADLE_HOME/samples/java/quickstart 에.gradle 폴더와 build 폴더가생성된다. 19
3. 주요기능 3.4 javadoc 생성 GRADLE_HOME/samples/java/quickstart/build/docs/javadoc 에자바 API 문서생성 20
3. 주요기능 3.5 jar 생성 GRADLE_HOME/samples/java/quickstart 에서 gradle jar 를실행한다 quickstart/build/libs 아래에 jar 파일이생성된다 21
3. 주요기능 3.6 Jenkins 연동 Jenkins 에 gradle 플러그인을설치해서 gradle 빌드스크립트를실행할수있다. 22
4. 활용예제 세부목차 4.1 예제소개 4.2 JPetStore 다운로드 4.3 gradle 빌드파일생성 4.4 gradle로빌드 4.5 생성된 war를 Tomcat에서실행 23
4. 활용예제 4.1 예제소개 Maven 으로빌드하여관리하던프로젝트를 Gradle 로빌드하여관리할수있도록전환하는사례제시 Maven 빌드파일을포함하고있는 JPetStore 를대상으로 Gradle 빌드스크립트를생성 / 수정하고, Gradle 로빌드하여 war 파일을생성한다. 생성된 war 파일을 Tomcat 에 deploy 하여 JPetStore 구동을확인한다. 24
4. 활용예제 4.2 JPetStore 다운로드 (1/2) https://github.com/mybatis/jpetstore-6/releases 에서 mybatis-jpetstore- 6.0.1 release Source code 를다운로드받는다 25
4. 활용예제 4.2 JPetStore 다운로드 (2/2) 편의상 D:\ 에압축을푼다. 26
4. 활용예제 4.3 gradle 빌드파일생성 (1/3) src 디렉토리와 pom.xml 이있는 jpetstore-6-mybatis-jpetstore-6.0.1 디렉토리에서 gradle init --type pom 를실행한다. 27
4. 활용예제 4.3 gradle 빌드파일생성 (2/3) jpetstore-6-mybatis-jpetstore-6.0.1 디렉토리에아래와같은 gradle 빌드에필요한파일과디렉토리가생성된다. 28
4. 활용예제 4.3 gradle 빌드파일생성 (3/3) JPetStore 의 war 파일을생성하는것이목적이므로 build.gradle 파일을열어 war 플러그인을추가한다. 29
4. 활용예제 4.4 gradle 로빌드 gradle build 를통해 JPetStore 를빌드한다 30
4. 활용예제 4.5 생성된 war 를 Tomcat 에서실행 (1/2) 빌드결과 build/libs 디렉토리에 jpetstore-6.0.1.war 가생성된다. jpetstore-6.0.1.war 를 TOMCAT_HOME/webapps 디렉토리에복사한다. 31
4. 활용예제 4.5 생성된 war 를 Tomcat 에서실행 (2/2) Tomcat 을구동하고 http://localhost:8080/jpetstore-6.0.1/ 로접속 32