我的项目有两个不同的build.gradle文件,用groovy语法编写。 我想将这个groovy写入的gradle文件更改为用Kotlin语法(build.gradle.kts)编写的gradle文件。
我将向您展示根项目build.gradle文件。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
//ext.kotlin_version = '1.2-M2'
ext.kotlin_version = '1.1.51'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0-alpha01'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
我尝试了几种在互联网上找到的“方法”,但没有任何效果。重命名文件,显然不是解决方案,没有帮助。我在我的根项目中创建了一个新的build.gradle.kts文件,但该文件没有显示在我的项目中。 gradle也没有识别出新文件。
所以我的问题是:如何将我的groovy build.gradle文件转换为kotlin build.gradle.kts并将这个新文件添加到我现有的项目中?
感谢您的帮助。
答案 0 :(得分:19)
当然重命名无济于事。您需要使用Kotlin DSL重新编写它。它与Groovy类似,但有一些差异。 Read their docs,请查看the examples。
在您的情况下,问题是:
ext.kotlin_version
无效Kotlin语法,请使用square brackets tasks
block as strings,或使用单个类型的函数,如下例所示。查看已转换的顶级build.gradle.kts
:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext["kotlin_version"] = "1.1.51"
repositories {
google()
jcenter()
}
dependencies {
classpath ("com.android.tools.build:gradle:3.1.0-alpha01")
classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:${ext["kotlin_version"]}")
}
}
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
task<Delete>("clean") {
delete(rootProject.buildDir)
}