Kotlin 之旅6 使用Kotlin進行DSL開發

小楠總發表於2017-12-21

####DSL的基本概念

領域特定語言DSL是一種為解決特定領域問題而對某個特定領域操作概念進行抽象的語言。不同於Java可以進行Web、移動開發等等,DSL只針對每個領域,例如SQL、HTML等。

DSL的特點:

  1. 程式語言
  2. 具有語言的表達能力,但是有限
  3. 只關注某個特定領域,離開了這個領域就不適用了

####使用Kotlin進行Gradle配置

在Gradle中使用Kotlin可以大大地方便我們,因為Kotlin是一門靜態的語言,相對於動態語言Groovy,Kotlin的程式碼提示比較好。

使用Kotlin進行Gradle配置,需要使用新版本的Gradle,下面到gradle-wrapper.properties修改一下Gradle版本:

distributionUrl=https\://repo.gradle.org/gradle/dist-snapshots/gradle-script-kotlin-4.0-20170523130707+0000-all.zip
複製程式碼

然後把build.gradle改為Gradle指令碼字尾:

build.gradle.kts
複製程式碼

然後重啟IDE,接下來修改指令碼,同步即可:

group = "com.nan"
version = "1.0"

buildscript {
    extra["kotlin_version"] = "1.1.3-2"

    repositories {
        jcenter()
    }
    dependencies {
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${extra["kotlin_version"]}")
    }
}

apply {
    plugin("java")
    plugin("kotlin")
}

configure<JavaPluginConvention> {
    setSourceCompatibility(1.5)
}

repositories {
    jcenter()
}

dependencies {
    compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:${extra["kotlin_version"]}")
    testCompile("junit", "junit", "4.11")
}
複製程式碼

如果覺得我的文字對你有所幫助的話,歡迎關注我的公眾號:

公眾號:Android開發進階

我的群歡迎大家進來探討各種技術與非技術的話題,有興趣的朋友們加我私人微信huannan88,我拉你進群交(♂)流(♀)

相關文章