[세미나] 20160520 gradle

14
Gradle 2016.05.20 KAIST iDBLab 윤윤윤 이 이이이 이이이이이 이이이이이이이 . 이이이이

Upload: sanghun-yun

Post on 17-Jan-2017

98 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: [세미나] 20160520 Gradle

Gradle

2016.05.20

KAIST iDBLab

윤상훈

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기

Page 2: [세미나] 20160520 Gradle

1. Gradle 이란 ?

2. Java Plugin

3. Demo

4. Android Library Example

5. Q&A

목차

Page 3: [세미나] 20160520 Gradle

1.1 페이지 제목

Gradle 이란 ?3 / 14

Gradle 은 Groovy 스크립트 기반의 멀티 플랫폼 빌드툴이다 .

•LinkedIn 은 Java, Scala, Python, C/C++, Android, IOS 등 서로 다른 60 개의 언어의 프로그램을 Gradle 을 이용하여 빌드한다 .•Android Studio, IntelliJ, Eclipse 와 같은 다양한 IDE 와 Chef, Docker 등의 툴과 integration 하는 수많은 plugin

을 제공한다 .•Maven, Ivy, file dependency 를 관리한다 .•Convention 에 따른 빌드를 통해서 migration 이 용이하다 .•Groovy 스크립트를 이용한 programmable 한 빌드 , 쉬운 extend.•Incremental Build 를 통해서 redundant 한 작업을 없애서 빠른 빌드를 가능하게 한다 .•Gradle daemon 을 이용하면 빠른 startup 이 가능하다 .•Gradle wrapper 를 이용해서 gradle 이 설치가 되어 있지 않아도 빌드가 가능하다 .

Maven 보다 좋다 !!

Page 4: [세미나] 20160520 Gradle

Path Convention

2.1 도형 4 / 14

Java Plugin

Page 5: [세미나] 20160520 Gradle

project-root/- src/- build.gradle- gradlew (op-tional)- gradlew.bat (op-tional)- gradle/ (optional)

2.1 도형 5 / 14

Java Pluginbuild.gradleapply plugin: ‘java’

Terminal$ gradle build

or

$ ./gradlew build

Page 6: [세미나] 20160520 Gradle

Init Java Library

2.1 도형 6 / 14

Java PluginTerminal$ gradle init --type java-library

build.gradleapply plugin: 'java’

repositories { jcenter()}

dependencies { compile 'org.slf4j:slf4j-api:1.7.21’ testCompile 'junit:junit:4.12’}

Page 7: [세미나] 20160520 Gradle

Gradle Init Demo

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기

Page 8: [세미나] 20160520 Gradle

Tasks

2.1 도형 8 / 14

Java Plugin

Page 9: [세미나] 20160520 Gradle

Customizing Project

2.1 도형 9 / 14

Java Pluginbuild.gradleapply plugin: 'java’

group = 'org.gradle.example’version = '1.0.0’sourceCompatibility = targetCompatibility = 1.7

repositories { jcenter()}

dependencies { compile 'org.slf4j:slf4j-api:1.7.21’ testCompile 'junit:junit:4.12’}

jar { manifest { attributes 'Main-Class': "${project.group}.App” }}

Page 10: [세미나] 20160520 Gradle

Multi-project

project-root/ - libraryProject - sampleProject - sample1 - sample2

2.1 도형 10 / 14

Java Plugin

build.gradlesubprojects { apply plugin: 'java'

repositories { mavenCentral() } dependencies { testCompile 'junit:junit:4.12' } version = '1.0' }

settings.gradleinclude ‘libraryProject’, ‘sampleProject:sample1’, ‘sampleProject:sample2’

sampleProject/sample1/build.gradledependencies { compile project(':libraryProject') }

Page 11: [세미나] 20160520 Gradle

Smart IoT Demo

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기

Page 12: [세미나] 20160520 Gradle

1.1 페이지 제목

Android Library Exam-ple

12 / 14

GitHub - Simple Photo Picker

Page 13: [세미나] 20160520 Gradle

Q&A

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기

Page 14: [세미나] 20160520 Gradle

감사합니다

이 문서는 나눔글꼴로 작성되었습니다 . 설치하기