我在项目中创建了一个简单的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'
那么我做错了什么?
答案 0 :(得分:2)
您不遵循文档。引号中的路径为rootProject/buildSrc/src/main/groovy
,但您不使用buildSrc
目录,而是将插件源代码包含在项目源中。由于这些源仅在执行特定compileJava
/ compileGroovy
时生成,因此它们无法在构建脚本中使用。
您可以将buildSrc
目录视为一个简单的子项目,也可以在那里创建build.gradle
文件。如果您不创建一个,将使用隐式构建文件内容。
似乎插件ID不能用于buildSrc
插件。需要通过指定实现类的全名(包)来应用插件:
apply plugin: ShowDatePlugin
如果您的插件按预期工作,我建议将代码解压缩到一个单独的插件项目中,以实现更好的可重用性。