项目整体目录如下:
使用创建Gradle插件的第三种方式创建自己的Gradle插件。
![](https://img.haomeiwen.com/i8669504/4c876e0130a60bb4.png)
配置步骤参考自
gradle publish-plugin插件官网:https://plugins.gradle.org/docs/publish-plugin
1.创建账号
https://plugins.gradle.org/
在Gradle插件官网创建账号,用Github账号登录即可。
2.创建API key
在账号下获取Api key。
![](https://img.haomeiwen.com/i8669504/06bc219adf04e7e9.png)
3.添加API key配置
进入目录:
cd ~/.gradle/
$ open .
目录下新建文件:gradle.properties:
gradle.publish.key=your-api-key
gradle.publish.secret=your-api-secret
4.在插件模块build.gradle文件下配置:
配置代码很简洁,没有花里胡哨的。
plugins {
id 'groovy'
id 'java-gradle-plugin'
id 'com.gradle.plugin-publish'
}
dependencies {
implementation gradleApi()
implementation localGroovy()
}
version = '1.1.0'
group = 'io.github.xxx'
gradlePlugin {
website = 'xxx/BuildCostPlugin'
vcsUrl = 'xxx/BuildCostPlugin'
plugins {
buildcostplugin {
id = 'io.github.xxx'
implementationClass = 'github.BuildCostPlugin'
displayName = 'statistics plugin'
description = 'This is a compilation time statistics plugin.'
tags.set(['androidStudio','buildcost'])
}
}
}
添加插件的classpath:
classpath "com.gradle.publish:plugin-publish-plugin:1.2.1"
5.编译之后打开上传任务
双击login任务进行登录,将gradle.properties下配置的api key,api secrete进行登录。
点击如下链接:
![](https://img.haomeiwen.com/i8669504/3b4fc4ac6c574614.png)
跳转进行权限认证:
![](https://img.haomeiwen.com/i8669504/e6b54093a431d210.png)
认证成功后,双击publishPlugins上传任务发布插件
![](https://img.haomeiwen.com/i8669504/e8b6aaa35bc396b0.png)
6.发布成功
![](https://img.haomeiwen.com/i8669504/2f6ac5efb67c013b.png)
发布成功等待审核通过,可以通过自己账号下插件列表查看:
![](https://img.haomeiwen.com/i8669504/a15a71683e435800.png)
或者搜索自己的gradle插件
插件发布通过后,在gradle插件平台搜索
![](https://img.haomeiwen.com/i8669504/d2e43629bca2d8e2.png)
报错解决
website属性找不到报错
Could not set unknown property ‘website’ for extension ‘gradlePlugin’ of type org.gradle.plugin.devel.GradlePluginDevelopmentExtension.
解决方案:
将Gradle版本升到7.6或更高版本。
上传的gradle task不显示
![](https://img.haomeiwen.com/i8669504/839e1b374d9fb6f4.png)
打开preference,勾选如下配置,reload gradle project即可展示所有task。
![](https://img.haomeiwen.com/i8669504/51562826c06f2d53.png)
其他错误
id配置错误或者group id错误具体见gradle抛出的错误。
Gradle plugin官网参考:
https://plugins.gradle.org/docs/publish-plugin
网友评论