未找到id'id'的插件(gradle自定义插件)

时间:2018-06-01 17:09:39

标签: gradle gradle-plugin

我在项目中创建了一个简单的gradle插件。根据文档它应该没问题但是当我尝试使用它时我得到Plugin with id 'show-date-plugin' not found. 我指的是: https://docs.gradle.org/current/userguide/custom_plugins.html

  

您可以将插件的源代码放入   rootProjectDir / buildSrc / src / main / groovy目录。 Gradle将采取   关心编译和测试插件并使其可用   构建脚本的类路径。插件对每个人都可见   构建使用的构建脚本。但是,它在外面是不可见的   构建,所以你不能在构建之外重用插件   定义于。

这是我的build.gradle

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'

这是在项目中的位置: enter image description here

那么我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

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

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

apply plugin: ShowDatePlugin

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