首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到id 'id‘的插件(gradle自定义插件)

找不到id 'id‘的插件(gradle自定义插件)
EN

Stack Overflow用户
提问于 2018-06-01 17:09:38
回答 2查看 9K关注 0票数 3

我在项目中创建了一个简单的gradle插件。根据文档,它应该可以,但是当我尝试使用它时,我得到了我所指的Plugin with id 'show-date-plugin' not found.文档:plugins.html

您可以将插件的源代码放在rootProjectDir/buildSrc/src/main/groovy目录中。Gradle将负责编译和测试插件,并使其在构建脚本的类路径上可用。该插件对构建所使用的每个构建脚本都是可见的。但是,它在构建之外是不可见的,因此您不能重用它所定义的构建之外的插件。

这是我的build.gradle

代码语言:javascript
复制
plugins {
    id 'java'
    id 'groovy'
}

group 'info.garagesalesapp'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.4.12'
    compile gradleApi()
    compile localGroovy()
    compile project(':json-display')
    testCompile group: 'junit', name: 'junit', version: '4.12'
}
apply plugin: 'project-report'
apply plugin: 'show-date-plugin'

这是项目中的插件位置:

那我做错什么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 21:10:03

您不遵循文档。引号中的路径是rootProject/buildSrc/src/main/groovy,但您不使用buildSrc目录,而是将插件源代码包含到项目源代码中。因为这些源只有在执行特定的compileJava / compileGroovy时才会生成,所以它们不能在构建脚本中使用。

您可以将buildSrc目录看作一个简单的子项目,也可以在那里创建一个build.gradle文件。如果不创建一个,则将使用隐式生成文件内容。

似乎插件It不能用于buildSrc插件。需要通过指定实现类的全名(带有包)来应用插件:

代码语言:javascript
复制
apply plugin: ShowDatePlugin

如果您的插件按预期工作,我建议将代码提取到单独的插件项目中,以实现更好的可重用性。

票数 3
EN

Stack Overflow用户

发布于 2022-03-17 21:56:05

我也遇到了同样的错误,有时我们需要在文档方面更进一步,因为它可能不太清楚。

我的问题是,我没有添加buildSrc/build.gradle文件,所以它没有找到插件id:

buildSrc/build.gradle

代码语言:javascript
复制
plugins {
    id 'groovy-gradle-plugin'
}

这实际上是在文档中提到的,但是下面是其他部分。

最后,预编译插件似乎无法在allprojects root build.gradle的配置中应用,因此我需要将其添加到每个模块构建文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50648187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档