将 build.gradle 文件迁移到 buildSrc 目录中的 build.gradle.kts 后,未解决对 org.gradle.api 依赖项的引用

man*_*ool 5 android kotlin build.gradle gradle-kotlin-dsl

我正在尝试将 build.gradle 文件迁移到 buildSrc 目录中的 build.gradle.kts 。请注意,在我的 buildSrc 中,我已经使用 java-gradle-plugin 并使用 org.gradle.api 中的 api 创建了一个 gradle 插件,例如插件、项目等。但是当我配置脚本时,我在文件中得到了一个未解析的引用,该引用使用 org .gradle.api

这是 build.gradle 文件的代码

plugins {
    id 'java'
    id 'java-gradle-plugin'
    id 'org.jetbrains.kotlin.jvm' version '1.3.21'
}

gradlePlugin {
    plugins {
        netguard {
            id = 'pluginId'
            implementationClass = 'myplugin.plugin.awesomeplugin'
        }
    }
}
repositories {
    mavenCentral()
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是迁移后的 build.gradle.kts

import org.gradle.kotlin.dsl.*
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile


plugins {
    `kotlin-dsl`
    java
    `java-gradle-plugin`
    id("org.jetbrains.kotlin.jvm") version "1.3.21"

}

gradlePlugin {
    plugins {
        create("netguard") {
            id = "pluginId"
            implementationClass = "myplugin.plugin.awesomeplugin"
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
}

val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.jvmTarget = "1.8"

val compileTestKotlin: KotlinCompile by tasks
compileTestKotlin.kotlinOptions.jvmTarget = "1.8"
Run Code Online (Sandbox Code Playgroud)

这里有一些来自 org.gradle.api 的未解决的参考

org.gradle.api.Plugin
org.gradle.api.Project
org.gradle.api.file.ConfigurableFileTree
org.gradle.testing.jacoco.plugins.JacocoPluginExtension
org.gradle.testing.jacoco.tasks.JacocoCoverageVerification
org.gradle.testing.jacoco.tasks.JacocoReport
...
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激。谢谢你!