使用 Maven---原文地址
插件与版本
kotlin-maven-plugin 用于编译 Kotlin 源代码与模块,目前只支持 Marven V3。
通过 kotlin.version 属性定义要使用的 Kotlin 版本:
1.1.2-4
default-compile
none
default-testCompile
none
java-compile
compile
compile
java-test-compile
test-compile
testCompile
${project.build.sourceEncoding}
1.8
1.8
增量编译
为了使构建更快,可以为 Maven 启用增量编译(从 Kotlin 1.1.2 起支持)。
为了做到这一点,需要定义 kotlin.compiler.incremental
属性:
true
或者,使用 -Dkotlin.compiler.incremental=true
选项运行构建。
注解处理
请参见 Kotlin 注解处理工具(kapt
)的描述。
Jar 文件
要创建一个仅包含模块代码的小型 Jar 文件,请在 Maven pom.xml 文件中的 build->plugins
下面包含以下内容,
其中 main.class
定义为一个属性,并指向主 Kotlin 或 Java 类。
org.apache.maven.plugins
maven-jar-plugin
2.6
true
${main.class}
独立的 Jar 文件
要创建一个独立的(self-contained)Jar 文件,包含模块中的代码及其依赖项,请在 Maven pom.xml 文件中的 build->plugins
下面包含以下内容
其中 main.class
定义为一个属性,并指向主 Kotlin 或 Java 类。
org.apache.maven.plugins
maven-assembly-plugin
2.6
make-assembly
package
single
${main.class}
jar-with-dependencies
这个独立的 jar 文件可以直接传给 JRE 来运行应用程序:
java -jar target/mymodule-0.0.1-SNAPSHOT-jar-with-dependencies.jar
针对 JavaScript
为了编译 JavaScript 代码,需要使用 js
和 test-js
目标来执行 compile
:
org.jetbrains.kotlin
kotlin-maven-plugin
${kotlin.version}
compile
compile
js
test-compile
test-compile
test-js
你还需要更改标准库依赖:
org.jetbrains.kotlin
kotlin-stdlib-js
${kotlin.version}
对于单元测试支持,你还需要添加对 kotlin-test-js
构件的依赖。
更多信息请参阅以 Maven 入门使用 Kotlin 与 JavaScript
教程。
指定编译器选项
可以将额外的编译器选项指定为 Maven 插件节点的 元素下的标签
:
kotlin-maven-plugin
org.jetbrains.kotlin
${kotlin.version}
……
true
许多选项还可以通过属性来配置:
1.0
支持以下属性:
JVM 和 JS 的公共属性
名称 | 属性名 | 描述 | 可能的值 | 默认值 |
nowarn | 不生成警告 | true, false | false | |
languageVersion | kotlin.compiler.languageVersion | 提供与指定语言版本源代码兼容性 | "1.0", "1.1" | "1.1" |
apiVersion | kotlin.compiler.apiVersion | 只允许使用来自捆绑库的指定版本中的声明 | "1.0", "1.1" | "1.1" |
sourceDirs | 包含要编译源文件的目录 | 该项目源代码根目录 | ||
compilerPlugins | 启用编译器插件 | [] | ||
pluginOptions | 编译器插件的选项 | [] | ||
args | 额外的编译器参数 | [] |
JVM 特有的属性
名称 | 属性名 | 描述 | 可能的值 | 默认值 |
jvmTarget | kotlin.compiler.jvmTarget | 生成的 JVM 字节码的目标版本 | "1.6", "1.8" | "1.6" |
jdkHome | kotlin.compiler.jdkHome | 要包含到 classpath 中的 JDK 主目录路径,如果与默认 JAVA_HOME 不同的话 |
JS 特有的属性
名称 | 属性名 | 描述 | 可能的值 | 默认值 |
outputFile | 输出文件路径 | |||
metaInfo | 使用元数据生成 .meta.js 与 .kjsm 文件。用于创建库 | true, false | true | |
sourceMap | 生成源代码映射(source map) | true, false | false | |
moduleKind | 编译器生成的模块类型 | "plain", "amd", "commonjs", "umd" | "plain" |
生成文档
标准的 JavaDoc 生成插件(maven-javadoc-plugin
)不支持 Kotlin 代码。
要生成 Kotlin 项目的文档,请使用 Dokka;
相关配置说明请参见 Dokka README
。Dokka 支持混合语言项目,并且可以生成多种格式的输出
,包括标准 JavaDoc。
OSGi
对于 OSGi 支持,请参见 Kotlin OSGi 页。
示例
一个示例 Maven 项目可以从 Github 版本库直接下载