美文网首页gradle
Gradle自定义插件发布到Maven

Gradle自定义插件发布到Maven

作者: milovetingting | 来源:发表于2020-04-05 17:16 被阅读0次

    个人博客

    http://www.milovetingting.cn

    Gradle自定义插件发布到Maven

    前言

    日常开发中,我们可能会用到一些别人开发的插件,通常我们是这样引入插件的:

    在项目根目录下的build.gradle增加配置:

    buildscript {
    
        repositories {
            //...
            maven { url 'https://dl.bintray.com/milovetingting/maven' }
            //...
        }
        dependencies {
            //...
            classpath 'com.wangyz.plugins:ShellPlugin:1.0.0'
            //...
        }
    }
    
    allprojects {
        repositories {
            //...
            maven { url 'https://dl.bintray.com/milovetingting/maven' }
            //...
        }
    }
    

    在需要应用插件的模块的build.gradle中增加配置:

    apply plugin: 'com.wangyz.plugins.ShellPlugin'
    

    sync工程后,就可以愉快地应用插件了。

    那么,如果我们自己有开发好的插件,也想提供给别人使用,要怎样操作呢?这里就需要把开发的插件上传到公共的仓库中,别人才可以引用到。本文以Maven为例,介绍自定义插件发布到Maven的流程。

    注册帐号

    可以通过bintray来发布插件到Maven仓库。首先需要注册帐号,注册地址:https://bintray.com/signup/oss

    可以直接注册或者通过Github帐号注册。

    需要注意的一点,邮箱地址不能为QQ邮箱,否则注册无法成功。

    注册.png

    新建仓库

    注册成功后,登录进去bintray,开始创建仓库

    新建仓库.png

    点击Add New Repository,进入新建仓库配置页面

    新建仓库2.png

    Name项可以输入maven,Type选择Maven。

    插件发布

    新建好仓库后,就可以配置Android Studio项目,以便发布插件到远程仓库。

    在要发布的library模块下的build.gradle中,增加以下配置

    apply plugin: 'com.novoda.bintray-release'
    
    publish {
        //注册bintray时的用户名
        userOrg = 'milovetingting'
        //要发布的插件的分组名,可以自己定义
        groupId = 'com.wangyz.plugins'
        //要发布的插件的标识
        artifactId = 'ShellPlugin'
        //要发布的插件版本
        publishVersion = '1.0.0'
        //描述
        desc = 'a plugin to shell apk'
        //对应的网址,如果项目代码放在github上,可以填写github中的项目地址
        website = 'https://github.com/milovetingting/Shell'
    }
    

    配置好后,同步项目。

    在Android Studio中的Terminal面板中,输入以下命令开始发布:

    gradlew clean build bintrayUpload -PbintrayUser=UserName -PbintrayKey=Key -PdryRun=false
    

    其中PbintrayUser为bintray中注册的用户名,PbintrayKey就是bintray为我们分配的key

    查看key的方法:

    点击Edit Profile

    查看key.png

    点击左侧的API Key,这里需要输入密码

    查看key2.png

    可以点击show查看key或者直接点击右侧的复制按钮复制

    查看key3.png

    正确执行上面的命令后,就可以在bintray中看到我们发布的插件

    查看插件.png

    点击刚才创建的仓库maven,可以看到我们自己定义的插件已经发布了

    查看插件2.png

    这个时候,就可以像引用其它插件一样来引用我们自己发布的插件,只不过我们还需要指定maven的具体地址,因为我们还没有把自己的插件发布到jcenter

    //项目根目录下的build.gradle
    buildscript {
    
        repositories {
            //...
            maven { url 'https://dl.bintray.com/milovetingting/maven' }
            //...
        }
        dependencies {
            //...
            classpath 'com.wangyz.plugins:ShellPlugin:1.0.0'
            //...
        }
    }
    
    allprojects {
        repositories {
            //...
            maven { url 'https://dl.bintray.com/milovetingting/maven' }
            //...
        }
    }
    

    其中的https://dl.bintray.com/milovetingting/maven
    格式为:https://dl.bintray.com/用户名/仓库名 ,应用插件时就会从指定的仓库下载

    发布到Jcenter

    如果想不使用具体的maven地址,那么就需要发布到jcenter。

    进入我们刚才发布的插件的详情页,点击右侧的Add to Jcenter,在弹出的窗口中点击确定后,就会提交发布的申请,在审核通过后,就可以不指定具体的maven地址,直接引用插件了。审核一般几个小时就会通过。

    相关文章

      网友评论

        本文标题:Gradle自定义插件发布到Maven

        本文链接:https://www.haomeiwen.com/subject/ynauphtx.html