改造 Maven 项目支持 Kotlin 语法

简介: 使用 Maven---原文地址插件与版本kotlin-maven-plugin 用于编译 Kotlin 源代码与模块,目前只支持 Marven V3。通过 kotlin.version 属性定义要使用的 Kotlin 版本: 1.

使用 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 版本库直接下载

目录
相关文章
|
1月前
|
前端开发 JavaScript 测试技术
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
Kotlin教程笔记 - 适合构建中大型项目的架构模式全面对比
32 3
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
本系列教程笔记详细讲解了Kotlin语法,适合需要深入了解Kotlin的开发者。若需快速学习Kotlin,建议查看“简洁”系列教程。本期重点介绍了Kotlin与Java的共存方式,包括属性、单例对象、默认参数方法、包方法、扩展方法以及内部类和成员的互操作性。通过这些内容,帮助你在项目中更好地结合使用这两种语言。
53 1
|
2月前
|
Java 开发工具 Android开发
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
Kotlin语法笔记(26) -Kotlin 与 Java 共存(1)
39 2
|
1月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
51 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
151 8
|
1月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
135 3
|
2月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
110 1
|
2月前
|
Java API Apache
除了 Maven,还有哪些工具可以管理项目的依赖和版本冲突
除了Maven,常用的项目依赖管理和版本冲突解决工具有Gradle、Ivy、Ant+Ivy、SBT等。这些工具各有特点,适用于不同的开发环境和需求。
185 2
|
2月前
|
IDE 开发工具 数据安全/隐私保护
Kotlin语法 - 类成员
本教程详细讲解Kotlin语法,适合深入学习。若需快速掌握,推荐“简洁”系列教程。内容涵盖类成员、函数与方法、属性访问控制及初始化等。类成员包括方法和属性,函数独立于类,属性访问通过getter/setter实现,支持延迟初始化。
43 3
|
2月前
|
数据安全/隐私保护 Kotlin
Kotlin语法 - 类成员
Kotlin语法 - 类成员