google-app-engine - 如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin

标签 google-app-engine gradle kotlin

正如标题所说,在开发 AppEngine 项目时如何使用 Kotlin?我正在使用带有 Gradle 的 IntelliJ/Android Studio 作为我的构建工具。

最佳答案

由于 AppEngine 执行已编译的 .class 文件,它并不关心生成这些文件的 JVM 语言。这意味着我们可以使用 Kotlin。

一种方法是使用 Gradle 和 Gradle App Engine plugin .使用类似于 thisbuild.gradle 创建一个项目.然后添加 Kotlin 依赖项并应用插件。最终的构建文件如下所示:

buildscript {
    ext.kotlin_version = '1.0.6' //replace with latest Kotlin version
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.32' //Replace with latest GAE plugin version
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

repositories {
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.32' //Replace with latest GAE SDK version
    compile 'javax.servlet:servlet-api:2.5'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

从 M11 开始,您不需要为 Kotlin 文件创建单独的目录,因此您只需将 .kt 文件添加到 src/main/java

关于google-app-engine - 如何在使用 Gradle 的 AppEngine 项目中使用 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29513162/

相关文章:

Gradle - 如何在 doLast 中执行命令行并获取退出代码?

android - `this@classname` 在 Kotlin 中是什么意思?

python - Google App Engine 中的 KindError

android - 如何在 Gradle 构建文件中使用环境变量?

java - 为什么是 ItemSkippedException?

scala - 如何指示 gradle 的 scala 插件在已安装的 JVM 中选择特定的 JVM?

kotlin - 你能在 Kotlin 的 stringRequest 变量之外获取 Volley 的响应数据吗?

java - Kotlin: java.lang.UnsupportedOperationException 在 MutableList 添加元素

python - Google App Engine 413 错误(请求实体太大)

java - 无法对 DATASTORE 中的数据进行排序