Gradle:为什么这个build.gradle.kts脚本无法产生任何Java类?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gradle:为什么这个build.gradle.kts脚本无法产生任何Java类?相关的知识,希望对你有一定的参考价值。

下面是一个build.gradle.kts脚本,适用于位于src/main/kotlin的kotlin代码。

是从正常运行的常规脚本转换的尝试。

gradlew build步骤没有错误,但是无法从kotlin代码生成任何Java class。缺少什么说明?

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"

答案

您已在此处将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目录。因此,您只需将其简单应用即可:]

plugins 
    kotlin("jvm").version("1.2.70")

以上是关于Gradle:为什么这个build.gradle.kts脚本无法产生任何Java类?的主要内容,如果未能解决你的问题,请参考以下文章

看不懂的 build.gradle 代码

项目中的 build.gradle 与应用程序中的 build.gradle

Gradle中的build.gradle文件

共享 jenkins 库 build.gradle 错误

android studio build.gradle是指啥意思?

Gradle 6 构建的时候没有执行测试