改造 Maven 项目支持 Kotlin 语法

使用 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 代码,需要使用 jstest-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 版本库直接下载

你可能感兴趣的:(改造 Maven 项目支持 Kotlin 语法)