You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle自定义插件‘show-date-plugin’找不到问题求助

解决Gradle自定义插件"Plugin with id 'show-date-plugin' not found"报错

我之前也碰到过一模一样的问题,结合你的配置和截图来看,大概率是这几个环节没处理到位,咱们一步步排查:

1. 插件ID的声明缺失或错误

Gradle不会自动把你的插件类和show-date-plugin这个ID关联起来,你得手动配置:

方式一:用.properties文件(兼容所有Gradle版本)

在buildSrc/src/main/resources/META-INF/gradle-plugins/目录下,创建一个名为show-date-plugin.properties的文件,里面只需要一行:

implementation-class=com.example.ShowDatePlugin

这里的com.example.ShowDatePlugin要和你截图里的插件类全限定名完全一致(包名+类名),别写错了!

方式二:用注解(Gradle 4.0+推荐)

如果你的Gradle版本够新,也可以直接在插件类上加注解,省掉properties文件:

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.annotation.PluginImplementation

// 这里的id要和你引用的完全一致
@PluginImplementation(id = "show-date-plugin")
class ShowDatePlugin implements Plugin<Project> {
    void apply(Project project) {
        // 你的插件逻辑,比如注册任务
        project.tasks.register('showDate') {
            doLast {
                println "当前日期:${new Date()}"
            }
        }
    }
}

2. buildSrc的构建配置没跟上

buildSrc是Gradle的特殊目录,但它本身也是一个独立的小项目,需要自己的build.gradle文件!你贴的是主项目的构建配置,得在buildSrc目录下新建一个build.gradle,内容至少要有:

plugins {
    id 'groovy' // 因为你的插件是Groovy写的
}

repositories {
    mavenCentral()
}

dependencies {
    implementation gradleApi() // 必须依赖Gradle API
    implementation localGroovy() // 依赖本地Groovy环境
}

没有这个配置的话,Gradle根本不会编译你放在buildSrc里的Groovy类,自然找不到插件。

3. 确认目录结构合规

从你的截图看,插件类在com.example包下,对应的目录结构buildSrc/src/main/groovy/com/example/ShowDatePlugin.groovy是对的,这个没问题,但要确保buildSrc目录直接在项目根目录下,和主项目的build.gradle同级,不能放在子项目里。

最后一步:刷新Gradle

做完上面的配置后,别忘点击IDE里的“Sync Gradle Project”按钮,或者在终端执行gradle clean build,让Gradle重新编译buildSrc里的插件。

按这个流程走下来,应该就能解决插件找不到的问题了。

内容的提问来源于stack exchange,提问作者IKo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:06:47