Gradle: почему этот скрипт build.gradle.kts не может создать класс java? - PullRequest
1 голос
/ 15 февраля 2020

Ниже приведен скрипт build.gradle.kts , который применяется к kotlin коду, расположенному в src/main/kotlin.

Это попытка перевода из скрипта groovy который работает правильно.

Шаги gradlew build не имеют ошибок, но не могут создать java класс из кода kotlin. Какая инструкция отсутствует?

buildscript {

    repositories {
        jcenter()
    }

    dependencies {
        classpath(kotlin("gradle-plugin", version = "1.2.70"))   
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.70")
        classpath("com.github.ben-manes:gradle-versions-plugin:0.20.0")
    }
}

plugins {
    jacoco
    java
    application
    "com.github.ben-manes.versions"
}

java {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}

jacoco {
 toolVersion = "0.8.1"
}

repositories {
    jcenter()
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib:1.2.70")
    implementation("com.squareup.moshi:moshi:1.4.0")
    implementation("com.squareup.okhttp3:okhttp:3.11.0")

    testImplementation("junit:junit:4.12")
    testImplementation("org.mockito:mockito-core:2.12.0")
    testImplementation("com.squareup.okhttp3:mockwebserver:3.11.0")
    testImplementation("org.assertj:assertj-core:3.10.0")
}

application {
    mainClassName = "io.ipfs.kotlin.MainKt"
}

1 Ответ

1 голос
/ 15 февраля 2020

Вы добавили плагин Kotlin в скрипт сборки здесь:

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath(kotlin("gradle-plugin", version = "1.2.70"))   
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.70")
        classpath("com.github.ben-manes:gradle-versions-plugin:0.20.0")
    }
}

, но вы не применили его

plugins {
    jacoco
    java
    application
    "com.github.ben-manes.versions"
    // No kotlin plugin actually applied here!
}

На самом деле, Настройка buildscript Kotlin не требуется, поскольку плагин Kotlin публикуется в каталоге плагинов Gradle. Таким образом, вы можете просто применить его так:

plugins {
    kotlin("jvm").version("1.2.70")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...