Contents
Java Gradle 插件开发插件能够被用来协助Gradle插件的开发..
它自动的应用Java Library插件,增加gradleApi依赖到 api配置 并且在jar 任务执行阶段执行插件元数据的验证 …
此插件和TestKit进行集成,这是一个专注于为插件代码编写并执行功能性测试的库 ..
它自动的增加gradleTestKit() 依赖到 testImplementation配置 并生成一个插件类路径manifest文件 - 如果发现则由GradleRunner 实例消费 …
请参考使用插件开发插件自动注入类路径了解更多使用,配置选项以及示例 ..
Usage
为了使用Java Gradle 插件开发插件,包括以下内容到构建脚本中
plugins {
id 'java-gradle-plugin'
}
应用此插件将自动的应用Java Library 插件 并且会增加 gradleApi() 依赖到 api 配置中.
同样它也会增加某些验证到构件中 …
以下验证将会执行:
- 由此插件定义的插件描述器
- 包含一个implementation-class 属性的插件描述器
- 此implementation-class 属性引用了此jar中的有效的类
- 每一个属性getter 或者 对应的字段必须使用属性注解注释(例如@InputFile 以及 @OutputDirectory). 对于不参与up-to-date(一般来说这跟增量构建有关) 检查应该注释为@Internal;
任何一个验证失败将会导致一个警告消息 ..
对于每一个插件(你开发的),增加一个entry到gradlePlugin{}脚本块中 ..
增加开发的插件到gradlePlugin block
gradlePlugin {
plugins {
simplePlugin {
id = 'org.gradle.sample.simple-plugin'
implementationClass = 'org.gradle.sample.SimplePlugin'
}
}
}
这个gradlePlugin {} block 定义了这个插件由项目构建(且包括了id 以及 插件的implementationClass).
根据这些关于正在开发的插件数据,Gradle 可以自动:
- 在jar文件的META-INF目录下生成插件描述符 ..
- 如果gradlePlugin.isAutomatedPublishing 不等于 false,配置Maven或者 lvy Publish Plugins 去为每一个插件发布 Plugin Marker Artifact.
- 除此之外,如果 Plugin Publishing Plugin被应用,它将使用相同名称,插件id,显示名以及描述发布到Gradle Plugin Portal(插件Publishing Plugins to Gradle Plugin Portal了解详情).