插件和版本
kotlin-gradle-plugin 可以编译 Kotlin 文件和模块
X.Y.SNAPSHOT:对应版本 X.Y 的快照,在 CI 服务器上的每次成功构建的版本。这些版本不是真正的稳定版,只是推荐用来测试新编辑器的功能的。现在所有的构建都是作为 0.1-SNAPSHOT 发表的。
X.Y.X: 对应版本 X.Y.Z 的 release 或 milestone ,自动升级。它们是文件构建。Release 版本发布在 Maven Central 仓库。在 pom 文件里不需要多余的配置。
milestone 和 版本的对应关系如下:
Milestone | Version |
---|---|
M12.1 | 0.12.613 |
M12 | 0.12.200 |
M11.1 | 0.11.91.1 |
M11 | 0.11.91 |
M10.1 | 0.10.195 |
M10 | 0.10.4 |
M9 | 0.9.66 |
M8 | 0.8.11 |
M7 | 0.7.270 |
M6.2 | 0.6.1673 |
M6.1 | 0.6.602 |
M6 | 0.6.69 |
M5.3 | 0.5.998 |
面向 Jvm
对于 jvm,需要应用 kotlin 插件
apply plugin: "kotlin"
至于 M11 ,kotlin 文件可以与 java 混用。默认使用不同文件夹:
project
- src
- main (root)
- kotlin
- java
如果不使用默认的设置则对应的文件属性要修改:
sourceSets {
main.kotlin.srcDirs += 'src/main/myKotlin'
main.java.srcDirs += 'src/main/myJava'
}
面向JavaScript
但目标是 JavaScript 时:
apply plugin: "kotln2js"
这个插件只对 kotlin 文件起作用,因此建议把 kotlin 和 java 文件分开。对于 jvm 如果不用默认的值则需要修改源文件夹:
sourceSets {
main.kotlin.srcDirs += 'src/main/myKotlin'
}
如果你想建立一个复用的库,使用 kotlinOptions.metaInfo
生成附加的带附加二进制描述的 js 文件
compileKotlin2Js {
kotlinOptions.metaInfo = true
}
目标是 android
Android Gradle 模块与普通的 Gradle 模块有些不同,所以如果你想建立 kotlin 写的android 项目,则需要下面这样:
buildscript {
...
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
Android Studio
如果使用 Android Studio,需要添加下面的代码:
android {
...
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
这是告诉 android studio kotlin 文件的目录位置方便 IDE 识别
配置依赖
我们需要添加 kotlin-gradle-plugin 和 kotlin 标准库依赖
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:<version>'
}
}
apply plugin: "kotlin" // or apply plugin: "kotlin2js" if targeting JavaScript
repositories {
mavenCentral()
}
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:<version>'
}
使用快照版本
如果使用快照版本则如下所示:
buildscript {
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
}
}
apply plugin: "kotlin" // or apply plugin: "kotlin2js" if targeting JavaScript
repositories {
mavenCentral()
maven {
url 'http://oss.sonatype.org/content/repositories/snapshots'
}
}
dependencies {
compile 'org.jetbrains.kotlin:kotlin-stdlib:0.1-SNAPSHOT'
}