找不到自定义Gradle插件ID

Pat*_*uld 25 plugins build gradle

我正在编写Gradle插件,但我无法使用该apply plugin:命令在使用该插件的Gradle脚本中工作.我正在使用Gradle 1.1.

我已经构建了插件,clean build并且我正试图通过平面回购添加到Gradle构建中.这似乎有效,但Gradle并没有意识到有一个带有ID的插件test-plugin.插件中的项目名称settings.gradletest-plugin,而属性文件META-INF/gradle-plugins也是test-plugin.properties.我不确定我还能在哪里指定插件ID.

gradle.build项目中的文件正在使用test-plugin:

repositories {
  flatDir name: 'libs', dirs: "../build/libs"
}

dependencies {
  compile 'test:test-plugin:0.1'
}

apply plugin: 'test-plugin'
Run Code Online (Sandbox Code Playgroud)

Gradle出错:

What went wrong:
A problem occurred evaluating root project 'tmp'.
Plugin with id 'test-plugin' not found.
Run Code Online (Sandbox Code Playgroud)

Pet*_*ser 23

必须将插件Jar添加为构建脚本依赖项:

buildscript {
    repositories { flatDir name: 'libs', dirs: "../build/libs" }
    dependencies { classpath 'test:test-plugin:0.1' }
}

apply plugin: "test-plugin"
Run Code Online (Sandbox Code Playgroud)


Reg*_*n39 5

如果要在构建脚本中实现插件,则有两个选择。

选项1
apply plugin: YourCustomPluginClassName

选项2
plugins { id 'your.custom.plugin.id' }

apply plugin:通过类名(例如apply plugin: JavaPlugin
plugins { }指定插件时使用,通过ID(例如plugins { id 'java' })指定插件时使用。
请参见tutorialspoint的Gradle插件以获取参考。

如果选择选项1,则需要通过3种方式之一将自定义插件添加到构建脚本中。
1.您可以直接在Gradle构建脚本中对其进行编码。
2.您可以将其放在buildSrc下(例如buildSrc / src / main / groovy / MyCustomPlugin)。
3.您可以在buildscript方法中将自定义插件作为jar导入。有关此方法的信息,
请参阅Haki先生的Gradle Goodnessbuildscript

如果选择选项2,则需要创建一个插件ID。创建以下文件buildSrc / src / main / resources / META-INF / gradle-plugins / [desired.plugin.id] .properties。复制并粘贴implementation-class=desired.plugin.id到新创建的.properties文件中。替换desired.plugin.id为所需的插件ID。
有关更多信息,请参见Gradle的自定义插件