实现Gradle Binary Plugin API,示例如下:
// build.gradle
apply plugin: 'java-gradle-plugin'
java {
registerFeature('my-gradle-feature') {
binaryJar {
archiveFileName.set('my-gradle-feature.jar')
builtBy(tasks[':my-gradle-plugin:build'])
}
}
}
// my-gradle-plugin/plugin.gradle
plugins {
id 'org.gradle.api.plugin' version '1.4'
id 'org.gradle.java-gradle-plugin' version '1.4'
}
repositories {
gradlePluginPortal()
}
gradlePlugin {
plugins {
myGradlePlugin {
id = 'my-gradle-plugin'
implementationClass = 'org.gradle.sample.MyGradlePlugin'
version = '0.1.0'
}
}
plugins {
myGradleFeature {
id = 'my-gradle-feature'
implementationClass = 'org.gradle.sample.MyGradleFeaturePlugin'
implementationOnly = true
binarySpec {
baseName = 'my-gradle-feature'
version = '0.1.0'
}
}
}
}
此示例使用Binary Plugin API创建一个二进制插件,然后使用它来构建Gradle插件。这需要在构建输出中包括二进制插件依赖项,因此我们需要binaryJar {}块以指定二进制插件文件名和生成。最后,我们使用Gradle plugin ID notations来声明我们的二进制插件和Gradle插件,并将它们添加到gradlePlugin块中。