20130709 gradle
TRANSCRIPT
![Page 1: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/1.jpg)
With Gradle & Maven
Enterprise Build
![Page 2: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/2.jpg)
Gradle 설치
Gradle 사이트에 방문해서 download 메뉴를 클릭하고 zip파일을
다운받으세요.
Zip파일의 압축을 풀어줍니다
1
![Page 3: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/3.jpg)
환경변수 등록
GRADLE_HOME
C:\gradle\gradle-1.6
2
![Page 4: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/4.jpg)
확인
Gradle 버전이 출력된다면
기본적인 설치는 끝났습니다.
3
![Page 5: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/5.jpg)
Gradle Project 생성
Build.gradle 파일을 정의해서 사용할 수 있음
Maven에서 phase를 입력했던 것처럼 task를 입력해서 실행함
project.description = 'first gradle' task first <<{ println 'running first project' + project.description }
4
![Page 6: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/6.jpg)
Gradle 실행
Gradle build 파일이 있는 폴더로 이동
Build.gradle에 정의한 task를 파라메터로 입력
5
![Page 7: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/7.jpg)
다중task 설정 및 기본 task설정
project.description = 'first gradle'
defaultTasks 'second'
task first{
println 'running first project' + project.description
}
task second{
doFirst{
println "second task called"
}
}
defaultTasks 에 정의된 Task가 gradle 명령 사용시에 기본적으로 사용됨 여러 개를 등록할 수도 있음 defaultTasks ‘second’, ‘first’
6
![Page 8: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/8.jpg)
순차적으로 실행하고 싶어요
project.description = 'first gradle' defaultTasks 'second' task first{ println 'running first project'+project.description } task second(dependsOn:first){ doFirst{ println "second task called" } }
7
![Page 9: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/9.jpg)
Maven Gradle 프로퍼티 비교
maven gradle 기본값
groupId group 공백
artifactId name | archivesBaseName 프로젝트 디렉토리명
version version unspecified
name n/A N/A
description description null
8
![Page 10: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/10.jpg)
Gradle eclipse plugin 설치
9
![Page 11: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/11.jpg)
Gradle eclipse plugin 설치확인
10
![Page 12: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/12.jpg)
Eclipse로 gradle project import
지금껏 build.gradle 파일을 이용해서 콘솔로 빌드했던 프로젝트를 import 해봅시다.
11
![Page 13: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/13.jpg)
Eclipse로 gradle project import2
에러메시지가 있다는 건
언제나 좋은 겁니다.
‘내가 왜 화났는지 맞춰봐’보다
100만배 편함.;
Build Model 버튼을 클릭하세요.
12
![Page 14: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/14.jpg)
Eclipse로 gradle project import2
Eclipse 프로젝트 형태로 변환해줍니다.
13
![Page 15: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/15.jpg)
Eclipse로 gradle project import3
Import 할 프로젝트를 체크하세요.
14
![Page 16: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/16.jpg)
Eclipse로 gradle project import4
변환완료
15
![Page 17: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/17.jpg)
적용한 eclipse 버전
16
![Page 18: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/18.jpg)
빌드결과물 타입
packaging war == apply plugin ‘war’
Packaging jar == apply plugin ‘java’
17
![Page 19: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/19.jpg)
Dependency Management
<repositories>
<repository>
<id>central</id> <url>http://repo1.maven.org/maven2/</url>
</repository>
<repositories>
18
repositories { mavenCentral() }
![Page 20: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/20.jpg)
Add library
dependencies{
compile ‘joda-time:joda-time:2.1’
}
19
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
<scope>compile</scope>
</dependency>
</dependencies>
![Page 21: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/21.jpg)
Gradle Project 만들기
Sample Project 유형으로 Java QuickStart를 선택합니다.
20
![Page 22: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/22.jpg)
21
![Page 23: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/23.jpg)
Eclipse 에서 Gradle build
compileJava task선택
22
![Page 24: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/24.jpg)
Gradle 로 java Compile
23
![Page 25: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/25.jpg)
Gradle Muliti Project
24
![Page 26: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/26.jpg)
프로젝트 간 의존관계설정
25
Settings.gradle
A B
Include “my-lib” “product”
mylib Multi-gradle
![Page 27: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/27.jpg)
멀티 컴파일
26
![Page 28: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/28.jpg)
라이브러리 참조 설정 Central은
http://repo.mycompany.com/maven2
Maven중앙저장소
Local은
Maven에 정의된 로컬저장소
27
repositories { mavenCentral() mavenLocal() }
Gradle에서 기본적으로 라이브러리가 저장되는 폴더
![Page 29: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/29.jpg)
라이브러리 업데이트
28
Refresh all 또는 Refresh dependencies
![Page 30: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/30.jpg)
이클립스 쓰기 싫은데요..
29
![Page 31: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/31.jpg)
Migration
좋아 a,bc … z
정말 좋아 ㄱ.ㄴ.ㄷ
좋으면 니가 적용해.
…………………..
관두면 오빠가 나 먹여살릴거야?
……………… 30
![Page 32: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/32.jpg)
Migration m2 -> gradle
31
As is maven
![Page 33: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/33.jpg)
Migration m2 -> gradle
32
Gradle 이 버전업을 하면서 기존에 maven2gradle이 https://github.com/jbaruch/maven2gradle 완벽하게 동작하지 않을 뿐만 아니라 gradle team에서 자체적으로 Maven2gradle에 상응하는 bootstrap plugin을 만들었습니다.
![Page 34: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/34.jpg)
Bootstrap plugin 전제조건
1. 기존 프로젝트가 maven3 버전으로 빌드되어야 합니다.
Mvn 커멘드가 제대로 동작하는지 확인하세요.
33
![Page 35: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/35.jpg)
Bootstrap plugin 사용
34
![Page 36: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/36.jpg)
Gradle 버전확인 (1.2) 에서만 사용
35
Gradle 1.6 로드실패 Gradle 1.2
Bootstrap plugin 로드
![Page 37: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/37.jpg)
Bootstrap plugin 실행
gradle maven2Gradle 실행
36
![Page 38: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/38.jpg)
변환 확인
37
Settings.gradle
Build.gradle
![Page 39: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/39.jpg)
웹프로젝트 만들기#1
플러그인 추가
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'eclipse-wtp'
38
![Page 40: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/40.jpg)
웹 디펜던시 추가 Version 관계
http://tomcat.apache.org/whichversion.html
39
dependencies{ providedCompile('org.apache.geronimo.specs:geronimo-servlet_3.0_spec:1.0') runtime 'org.apache.geronimo.specs:geronimo-jsp_2.2_spec:1.2' }
Geronimo javaEE spec을 구현하는 사이트
![Page 41: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/41.jpg)
jettyRun으로 실행
40
Webapp 가 기본디렉토리
![Page 42: 20130709 gradle](https://reader036.vdocuments.mx/reader036/viewer/2022082309/55878f1fd8b42a485d8b468d/html5/thumbnails/42.jpg)
To Other Time
To Other place
To Other Us 41