Gradle自定義插件發布到Maven


個人博客

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項目,以便發布插件到遠程倉庫。

在Project級別的build.gradle文件的dependencies節點下增加依賴

dependencies {
        ...
        classpath 'com.novoda:bintray-release:0.8.0'
    }

在要發布的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地址,直接引用插件了。審核一般幾個小時就會通過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM