[세미나] 20160520 gradle
TRANSCRIPT
1. Gradle 이란 ?
2. Java Plugin
3. Demo
4. Android Library Example
5. Q&A
목차
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 보다 좋다 !!
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
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’}
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” }}
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') }
1.1 페이지 제목
Android Library Exam-ple
12 / 14
GitHub - Simple Photo Picker