Kotllin与Maven和Gradle的集成

Intellij IDEA对Kotlin语言提供了完善的支持,我们可以方便的创建项目。但是IDEA项目毕竟只是针对单个IDE的,无法很好的跨环境。Kotlin同时也提供了针对Maven和Gradle的支持。我们可以非常方便的在现有的Java项目中引入Kotlin。

和Maven集成

Kotlin文档提供了详细的配置,包括只配置Kotlin编译环境、同时编译Kotlin和Java等、只打包本项目文件、打包所有依赖等多种选项。

首先我们先定义一下Kotlin版本。昨天Kotlin1.1刚刚发布。现在Maven官方仓库也已经更新到了1.1了。

<properties>
    <kotlin.version>1.1.0</kotlin.version>
</properties>

有了版本号之后,我们就可以方便的声明Kotlin依赖了。

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <version>${kotlin.version}</version>
    </dependency>
</dependencies>

然后需要指定Kotlin源代码的位置。这里的声明仅用于项目中只有Kotlin代码的情况。

<build>
    <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory>
</build>

我们还需要声明Kotlin的Maven插件来帮助我们编译Kotlin文件。

<build>
    <plugins>
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>

            <executions>
                <execution>
                    <id>compile</id>
                    <goals> <goal>compile</goal> </goals>
                </execution>

                <execution>
                    <id>test-compile</id>
                    <goals> <goal>test-compile</goal> </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如果要在项目中同时使用Kotlin和Java应该怎么办呢?官方文档也给出了相应的配置。由于这个配置文件很长,所以为了篇幅我就不抄了。大家如果有需求直接看文档就好了。这里也可以看出Maven的缺点,配置文件一言不合就长的没边了。

和Gradle集成

自从我学了Gradle之后(虽然只入了个门,还没学Groovy语言),我就不再用Maven了。别的不说,配置文件真的非常短。整个配置文件见下。

其实我们要做的就两件事情,一是声明buildscript片段,在其中配置Kotlin的版本、仓库等信息。二是添加kotlin插件。就这么点事情,Gradle就可以编译Kotlin代码了。默认情况下Kotlin代码的位置在src/main/kotlinsrc/test/kotlin下。

buildscript {
    ext.kotlin_version = '1.1.0'

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

如果需要自定义代码位置,在build.gradle文件中添加下面一段即可。

sourceSets {
    main.kotlin.srcDirs += 'src/main/myKotlin'
    main.java.srcDirs += 'src/main/myJava'
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,025评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,906评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,126评论 6 342
  • 每天下班回家,母亲就已经在厨房里张罗了,爱人带着两个孩子正在嬉闹,一个不会说话,两个吵吵闹闹。 吃着桌子上的三菜一...
    淡然心阅读 1,603评论 2 1
  • 《幸福的方法》作者是泰勒·本-沙哈尔,他主讲的关于幸福的课程,在哈佛大学引起了前所未有的轰动,被誉为「最受欢迎的讲...
    小黄2333阅读 1,481评论 0 0

友情链接更多精彩内容