IKo*_*IKo 5 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'
Run Code Online (Sandbox Code Playgroud)
那么我做错了什么?
您没有遵循文档。您引用中的路径是rootProject/buildSrc/src/main/groovy,但您不使用该buildSrc目录,而是将插件源代码包含到项目源中。由于这些源仅在执行特定compileJava/时才会构建compileGroovy,因此它们在构建脚本中不可用。
您可以将该buildSrc目录视为一个简单的子项目,也可以build.gradle在其中创建文件。如果您不创建,则将使用隐式构建文件内容。
插件 ID 似乎不能用于buildSrc插件。插件需要通过指定实现类的全名(带包)来应用:
apply plugin: ShowDatePlugin
Run Code Online (Sandbox Code Playgroud)
如果您的插件按预期工作,我建议将代码提取到单独的插件项目中,以实现更好的可重用性。