如何在Gradle多项目构建中配置每个Kotlin项目?

Mar*_*ger 6 java build gradle kotlin build.gradle

我有一个使用Gradle多项目构建的项目.一些子项目是用Java编写的,其他一些子项目是用Kotlin编写的.

我们有一个顶级build.gradle文件.该文件包含以下部分:

allprojects {
    plugins.withType(JavaPlugin) {
        // All the stuff that all Java sub-projects have in common
        ...
    }
    // All the stuff that all sub-projects have in common
    ...
}
Run Code Online (Sandbox Code Playgroud)

我们现在想介绍我们的Kotlin子项目的常用设置,但我找不到withType要使用的项目.

build.gradle我们Kotlin项目的文件始于

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.3.0"
} 
Run Code Online (Sandbox Code Playgroud)

但既不是withType(org.jetbrains.kotlin.jvm)也不行withType(KotlinProject).

我必须在那里使用什么类型?谢谢!

M.R*_*uti 7

您可以通过Kotlin插件id而不是其类型来引用它,如下所示:

allprojects {

    plugins.withType(JavaPlugin) {
        // All the stuff that all Java sub-projects have in common
        // ...
    }
    plugins.withId("org.jetbrains.kotlin.jvm") {
        // All the stuff that all Kotlin sub-projects have in common
        // ...
    }    
}
Run Code Online (Sandbox Code Playgroud)

对于Java插件,它更容易使用plugins.withType,您可以使用,因为它是Gradle的“核心”插件,并且JavaPlugin该类可以用作Gradle 默认导入import org.gradle.api.plugins.*)的一部分