补齐Android技能树 - 玩转Gradle插件 | 小册免费学(中)

简介: 本节就来了解下:Gradle插件编写的知识储备 及 插件发布相关 姿势,读者亦可自行查阅官方文档:Packaging a plugin
plugins {
    ...
    id 'cn.coderpig.plugins.greeting'
}


接着写一个Task来验证下:


task("testPlugin") {
    group("custom") // 分组,方便找到Task
    dependsOn('greeting')   // 调用插件里的greeting Task,在执行testPlugin
    doLast { println '任务执行完毕' }
}


运行结果如下:


网络异常,图片无法展示
|


3. 插件远程发布


① 废弃的JCenter


说到插件远程发布,网上十有八九的教程都是传到 JFlog Bintray,打开官网却是大红提示:


网络异常,图片无法展示
|


其实早在今年的2.3,官方就发布了一则通告:


包括 GoCenter、Bintray、JCenter 在内的多项软件包管理和分发服务都将停止运营。


自3.31后就不在接受任何新的提交,在2022.2.1前,你还是可以正常拉取2021.3.31前提交的库。


不能提交的话就只能找找JCenter的替代品咯,因为这里编写的是Gradle插件,可以试下提交到Gradle的远程仓库。


② Gradle Plugin仓库


完整流程介绍可参见官方文档:How do I add my plugin to the plugin portal?,这里简述下步骤:


先注册个账号 (Github授权登录亦可),登录后点击生成API Keys:


网络异常,图片无法展示
|


复制粘贴到本地gradle配置文件中:HOME_DIR/.gradle/gradle.properties (~/.gradle/gradle.properties)


接着照着:How do I use the Plugin Publishing Plugin?  配置下com.gradle.plugin-publish上传插件需要的一些参数:


plugins {
    ...
    id "com.gradle.plugin-publish" version "0.14.0" // 上传插件
}
version = "0.0.1"   // 自定义插件版本
group = "cn.coderpig.plugins"   // 自定义插件分组
// 自定义插件id及实现类
gradlePlugin {
    plugins {
        greeting {
            id = 'cn.coderpig.plugins.greeting'
            implementationClass = 'cn.coderpig.plugins.CpPluginPlugin'
        }
    }
}
// 插件附加信息
pluginBundle {
    website = 'https://github.com/coderpig/cpplugin'
    vcsUrl = 'https://github.com/coderpig/cpplugin'
    description = 'cpplugin gradle plugin' //插件描述
    tags = ['cp'] //搜索关键词
    plugins {
        greeting {
            // id会从插件java-gradle-plugin处自动获取
            displayName = 'cpplugin gradle plugin'
        }
    }
}


配置完Sync Now重新构建下项目,在Gradle窗口就会多出一个plugin portal目录,点击 publishPlugins 即可发布插件到Gradle:


网络异常,图片无法展示
|


发布成功后需要等待官方审核,审核通过的话就可以在官方搜索到自己的插件了,当然我这种乱写和信息乱填的Demo肯定是过不了审的,只是演示下流程~


③ JitPack仓库


Gradle Plugin仓库只适合Gradle插件发布,日常用第三方库可不支持,顺带提提另外两个方案,先说说 JitPack


基于Github仓库的发布仓库,发布方式也不复杂,照着官方用户指南走:使用 Maven Publish 插件


在你的库的 build.gradle 文件中增加对应配置信息,接着push到Github上,点击Releases面板 → create new release,依次输入版本号、标题和描述,然后点击Publish release即可。


接着回到JitPack,定位到自己写的库,然后四个tab,选中Releases → 对应版本点下Get it,接着静待片刻:


网络异常,图片无法展示
|


这里的红色代表编译失败,失败的原因是这个库没有添加相关配置,正常编译通过是绿色的,然后下方可以看到如何在项目中依赖这个库,Tag替换成对应版本,比如这里的1.0.2 :


网络异常,图片无法展示
|


④ mavenCentral仓库


上传库到MavenCentral前需要注册登录:Sonatype,进入网页后点击Sign up进入注册页面注册:


网络异常,图片无法展示
|


拥有Sonatype账号后,点开 管理后台,Log In下,会弹下述错误提示框:


网络异常,图片无法展示
|


需要申请一波Sonatype上传权限,回到 issues.sonatype.org/ 页,点击新建,填写项目信息:


网络异常,图片无法展示
|


提交完等审核吧,一般会让你证明域名真的是你自己的:


网络异常,图片无法展示
|


第一个种解决方式最简单,域名DNS坐下解析,添加一个TXT类型的记录即可,如:


网络异常,图片无法展示
|


接着在官网那里回复下他这个评论,又是静待审核,然后是Gradle的配置,GPG签名等,更多具体详细内容可以参考:Android库发布至MavenCentral流程详解


相关文章
|
6月前
|
SQL 人工智能 移动开发
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
|
6月前
|
Java 开发工具 Android开发
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
Cocos Creator 2.4.6 Android Gradle 版本升级为 6.5.1(插件4.1.0)
185 1
|
7月前
|
存储 Java Android开发
Android 开发 - 充分利用Gradle
Android 开发 - 充分利用Gradle
112 2
|
8月前
|
IDE Java 开发工具
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
|
4月前
|
开发工具 Android开发 开发者
Android 项目编译 Gradle 配置说明
Android 项目编译 Gradle 配置说明
149 0
|
4月前
|
存储 缓存 Java
Gradle笔记 八 Gradle 插件(二)
Gradle笔记 八 Gradle 插件
58 0
|
4月前
|
Java
Gradle笔记 八 Gradle 插件(一)
Gradle笔记 八 Gradle 插件
77 0
|
5月前
|
Java Maven Android开发
android之gradle配置仓库与引入依赖
android之gradle配置仓库与引入依赖
232 0
|
7月前
|
Java 开发工具 Maven
Android 编译 gradle 内存 OOM 解决之路(二)
Android 编译 gradle 内存 OOM 解决之路