[Kotlin Tutorial] Building Kotlin projects
참조 : Kotlin in action
1. Building Kotlin code with gradle
-
Kotlin 을 사용하는데 추천되는 build system 은 gradle 이다.
gradle 은 incremental build 를 사용해서 빌드 속도도 빠르게 할 수 있고,
gadle daemon 이 있어 build process 도 오래 살아있고, 기타 고급 기술들이 들어가 있다.
cf) incremental build 는 빌드된 구성 요소 중 최신 상태인 구성 요소는 다시 빌드하지 않는 것을 이야기한다.
즉 빌드된 적 없는 대상이나 만료된 대상만 다시 빌드하는 빌드방식을 incremental build 라 부른다.
-
Gradle team 이 gradle build script 를 Kotlin 으로 작성하는 것도 작업하고 있는데,
현재는 groovy syntax 만 된다.
// root build.gradle
buildscript{
ext.kotlin_version = ‘1.0.6’
repositories{
mavenCentral()
}
dependencies{
classpath “org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
// app build.gradle
apply plugin: ‘java’
apply plugin: ‘kotlin’
repositories{
mavenCentral()
}
dependencies{
compile “org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
참고로 필자가 직접 해보니 Android Studio 에서 Plug-in 을 설치하고 kotlin 코드를 작성하고 Compile 하다보면 알아서 이 gradle 설정을 해준다.. 귣귣~
-
Kotlin reflection 을 사용하려면 dependency 를 추가해야 한다.
compile “org.jetbrains.kotlin:kotlin-reflect:$kotlin_version”
1.1 Building Kotlin Android app with Gradle
-
Android 는 Java 와 다른 build process 를 탄다.
그래서 plugin 을 다른 것을 써야 한다.
apply plugin: ‘kotlin-android’
나머지는 non-Android setup 과 동일하다.
-
Java 코드의 path 에 Kotlin 을 함께 쓰는 것이 추천되지만, 혹여나 다른 folder 구조를 가지고 싶다면..
예를 들어 src/main/kotlin 으로 가져가려면 아래와 같은 코드가 추가되어야 한다.
android{
…
sourceSets{
main.java.srcDirs += ‘src/main/kotlin'
}
}
1.2 Building projects that use annotation processing
-
build script 안에서 annoation 을 사용하려면 추가 설정을 해줘야 한다.
apply plugin: ‘kotlin-kapt’
만약 기존의 apt 관련 설정이 있다면 제거하면 된다.
kotlin-kapt 가 java 와 kotlin 모두를 처리한다.
-
annotation processor 를 androidTest 와 test 에서 사용할 경우는 kapt 대신 kaptAndroidTest 와 kaptTest 를 사용하면 된다.
2. Building Kotlin projects with Maven
-
생략..
3. Building Kotlin code with Ant
-
생략..
'프로그래밍 놀이터 > Kotlin, Coroutine' 카테고리의 다른 글
[Kotlin Tutorial] The Kotlin ecosystem (0) | 2017.09.22 |
---|---|
[Kotlin Tutorial] Documenting Kotlin code (0) | 2017.09.20 |
[Kotlin Tutorial] DSL construction - Chap 11. (0) | 2017.09.14 |
[Kotlin] Linkage Error 버그? (0) | 2017.09.13 |
[Kotlin Tutorial] Annotation 과 Reflection #2 (0) | 2017.09.12 |
댓글