补齐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流程详解


相关文章
|
2月前
|
Android开发
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
|
2月前
|
Android开发
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
|
2月前
|
Java Android开发 Windows
玩转安卓之配置gradle-8.2.1
为安卓开发配置Gradle 8.2.1,包括下载和解压Gradle、配置环境变量、修改配置文件以增加国内镜像,以及在Android Studio中配置Gradle和JDK的过程。
90 0
玩转安卓之配置gradle-8.2.1
|
7月前
|
编解码 Java Android开发
Android技能树 — 屏幕适配小结,2024年最新android开发环境搭建教程
Android技能树 — 屏幕适配小结,2024年最新android开发环境搭建教程
|
2月前
|
Android开发
我是一位Android工程师,用通义灵码的AS插件做开发工作助手,对比之前没有灵码,现在提效了60%
我是一位Android工程师,用通义灵码的AS插件做开发工作助手,对比之前没有灵码,现在提效了60%
52 0
|
4月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1566 0
Android Studio: 解决Gradle sync failed 错误
|
4月前
|
Java 开发工具 Maven
Flutter和Android中覆盖gradle中的repositories仓库地址
Flutter和Android中覆盖gradle中的repositories仓库地址
209 4
|
4月前
|
Android开发 Kotlin
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.3.10 and higher
99 3
|
4月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
88 0
|
4月前
|
IDE API 开发工具
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
与Android Gradle Plugin对应的Gradle版本和Android Studio版本
483 0