为什么在 Gradle 中尝试使用自定义 Kotlin 编译器插件时出现 UnknownPluginException?
Why do I get UnknownPluginException when trying to use a custom Kotlin complier plugin in Gradle?
我已经为 Gradle 创建了一个自定义 Kotlin 编译器插件。它的灵感来自 kotlin-allopen (2) and sample-kotlin-compiler-plugin,并且应该使所有 Kotlin 类 成为非最终版本。
问题是,我无法在我的项目中使用它,我只得到以下信息:
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'no.synth.kotlin.plugins.kotlin-really-allopen' not found.
at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:131)
我已经尝试了两种 "new" 插件语法:
plugins {
id "no.synth.kotlin.plugins.kotlin-really-allopen" version "0.1"
}
..和旧的:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath "no.synth.kotlin.plugins:kotlin-really-allopen:0.1"
}
}
apply plugin: "kotlin-really-allopen" // I've tried "no.synth.kotlin.plugins.kotlin-really-allopen" as well
那我做错了什么?这是插件:https://github.com/henrik242/kotlin-really-allopen
编辑:我已经用示例应用程序和 README.md 更新了存储库以轻松重现问题。
在您的 build.gradle
模块应用程序中移动 apply plugin: "kotlin-really-allopen"
您的 Gradle 插件似乎不包含 META-INF/gradle-plugins
下的任何条目。
Gradle 要求每个插件 ID 映射到实现 class,并且此映射存储在 META-INF/gradle-plugins
资源中。
要映射插件 ID kotlin-really-allopen
,您需要一个资源文件
src/main/resources/META-INF/gradle-plugins/kotlin-really-allopen.properties
.
您还可以使用 Gradle Plugin Development Plugin,它会自动从构建脚本 DSL 生成这些条目。
此外,您的存储库似乎不包含实际的 Gradle 插件实现,只有编译器需要加载的部分。对于也包含 Gradle 部分的示例,请查看 kevinmost/debuglog.
我已经为 Gradle 创建了一个自定义 Kotlin 编译器插件。它的灵感来自 kotlin-allopen (2) and sample-kotlin-compiler-plugin,并且应该使所有 Kotlin 类 成为非最终版本。
问题是,我无法在我的项目中使用它,我只得到以下信息:
Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id 'no.synth.kotlin.plugins.kotlin-really-allopen' not found.
at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:131)
我已经尝试了两种 "new" 插件语法:
plugins {
id "no.synth.kotlin.plugins.kotlin-really-allopen" version "0.1"
}
..和旧的:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath "no.synth.kotlin.plugins:kotlin-really-allopen:0.1"
}
}
apply plugin: "kotlin-really-allopen" // I've tried "no.synth.kotlin.plugins.kotlin-really-allopen" as well
那我做错了什么?这是插件:https://github.com/henrik242/kotlin-really-allopen
编辑:我已经用示例应用程序和 README.md 更新了存储库以轻松重现问题。
在您的 build.gradle
模块应用程序中移动 apply plugin: "kotlin-really-allopen"
您的 Gradle 插件似乎不包含 META-INF/gradle-plugins
下的任何条目。
Gradle 要求每个插件 ID 映射到实现 class,并且此映射存储在 META-INF/gradle-plugins
资源中。
要映射插件 ID kotlin-really-allopen
,您需要一个资源文件
src/main/resources/META-INF/gradle-plugins/kotlin-really-allopen.properties
.
您还可以使用 Gradle Plugin Development Plugin,它会自动从构建脚本 DSL 生成这些条目。
此外,您的存储库似乎不包含实际的 Gradle 插件实现,只有编译器需要加载的部分。对于也包含 Gradle 部分的示例,请查看 kevinmost/debuglog.