id为';id';未找到(gradle自定义插件)
我在项目内部创建了一个简单的gradle插件。根据文档,应该没问题,但是当我尝试使用它时,我得到了id为“show date Plugin”的插件。 我指的是医生: 您可以将插件的源代码放入 rootProjectDir/buildSrc/src/main/groovy目录。格雷德尔会接受的 注意编译和测试插件,并在 生成脚本的类路径。每个人都可以看到这个插件 生成所使用的生成脚本。但是,它在外部不可见 因此,您不能在构建之外重用插件 定义于 这是我的id为';id';未找到(gradle自定义插件),gradle,gradle-plugin,Gradle,Gradle Plugin,我在项目内部创建了一个简单的gradle插件。根据文档,应该没问题,但是当我尝试使用它时,我得到了id为“show date Plugin”的插件。 我指的是医生: 您可以将插件的源代码放入 rootProjectDir/buildSrc/src/main/groovy目录。格雷德尔会接受的 注意编译和测试插件,并在 生成脚本的类路径。每个人都可以看到这个插件 生成所使用的生成脚本。但是,它在外部不可见 因此,您不能在构建之外重用插件 定义于 这是我的build.gradle plugins
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'
这是项目中的插件位置:
那么我做错了什么呢?您没有遵循文档。报价中的路径是
rootProject/buildSrc/src/main/groovy
,但您不使用buildSrc
目录,而是将插件源代码包含到项目源代码中。由于这些源仅在执行特定的compileJava
/compileGroovy
时才是生成源,因此它们在生成脚本中不可用
您可以将buildSrc
目录看作一个简单的子项目,也可以在那里创建build.gradle
文件。如果不创建,将使用隐式生成文件内容
似乎插件ID不能用于
buildSrc
插件。需要通过指定实现类的全名(带包)来应用插件:
apply plugin: ShowDatePlugin
如果您的插件按预期工作,我建议将代码提取到一个单独的插件项目中,以实现更好的重用性。我只是按照您所说的做了所有事情,但仍然出现相同的错误。这简直要了我的命)似乎插件ID不能用于
buildSrc
插件。您需要通过其包路径应用插件:apply plugin:package.path.to.ImplementationClass
。我只是测试了两种方法,只有这一种有效。没有帮助。如果你有几分钟的时间,你能看一下我的项目吗?我把它推到github上,我编辑了我的答案并添加了一个代码示例。你能试试这个吗?对于您目前使用的软件包,您需要使用apply-plugin:org.kokoko.ShowDatePlugin
。另外,为了进一步参考,项目中的.properties
文件路径错误。尝试apply plugin:org.kokoko.ShowDatePlugin
没有帮助