美文网首页
Gradle配置Kotlin环境

Gradle配置Kotlin环境

作者: itBox | 来源:发表于2022-07-20 16:13 被阅读0次

    在最新的Android Studio 上已经提供了默认的Kotlin工程的模板,但是这些简单的配置远不能满足一个复杂项目的构建要求,因此这里重新做下整理,搬运下Kotlin官方的内容。

    一、基本Kotlin环境配置
    Import Plugin
    1.如果Gradle 版本在2.1前可以使用以下引入方式。

    1.1 在脚本文件下添加外部Gradle插件依赖引用

    buildscript {
        ext.kotlin_version = '1.2.61'
     
        repositories {
            mavenCentral()
        }
     
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    

    1.2 应用Gradle Kotlin插件

    在需要引入项目(可能你是多项目构建,模块)构建脚本下引入插件

    apply plugin: "kotlin"
    

    2.如果Gradle版为2.1或以上,则可以在对应需要引入的构建脚本下方便的使用plugins {}脚本块进行快速引入(不需要再buildscript中声名引入了)。

    plugins {
          id "org.jetbrains.kotlin.jvm" version "1.2.61" // 使用社区插件(非内置核心插件)方式引入,需要指定版本
    }
    

    plugins {}默认是指向Gradle自己的https://plugins.gradle.org/m2仓库,实测了下,maven依赖并不全,有时候会发现 not find 些依赖库。

    解决这个问题可以在 settings.gradle 可以对 仓库地址进行配置下。(发现gralde插件还是会在一些比较老的仓库发布,作为备用,可以调整配置下)

    pluginManagement {
        repositories {
            mavenCentral()
            gradlePluginPortal()
        }
    }
    

    Set Source
    Kotlin 插件默认将 src / main / kotlin /和 src / main / java / 作为 srcDirs路径
    如果项目对默认路径做了调整,需要重新设置该信息

    sourceSets {
        main.kotlin.srcDirs += 'src/main/自己的目录' // 让 kotlin 知道哪些目录是存在kotlin代码源文件
    }
    

    在 Android Studio 中,还需要额外将kotlin目录添加到 main.java.srcDirs中,以让IDE能正确识别这些目录为源目录。

    android {
      ...
     
      sourceSets {
        main.java.srcDirs += 'src/main/kotlin' // 让 Android Studio 知道这些目录是存在代码文件的,自动识别,产生一些IDE的效果
      }
    }
    

    二、标准库支持

    在满足构建环境后,我们还需要配置一些在生产环境下,Kotlin代码需要使用的标准函数库,这里在对应的项目下引入标准库即可。

    dependencies {
        compile "org.jetbrains.kotlin:kotlin-stdlib"
        // compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7" // 如果仅需要支持 JDK7的话,直接使用这个
        // compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8" // 如果仅需要支持 JDK8版本的话
    }
    

    相关文章

      网友评论

          本文标题:Gradle配置Kotlin环境

          本文链接:https://www.haomeiwen.com/subject/jpnuirtx.html