個人博客
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郵箱,否則注冊無法成功。
新建倉庫
注冊成功后,登錄進去bintray,開始創建倉庫
點擊Add New Repository,進入新建倉庫配置頁面
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
點擊左側的API Key,這里需要輸入密碼
可以點擊show查看key或者直接點擊右側的復制按鈕復制
正確執行上面的命令后,就可以在bintray中看到我們發布的插件
點擊剛才創建的倉庫maven,可以看到我們自己定義的插件已經發布了
這個時候,就可以像引用其它插件一樣來引用我們自己發布的插件,只不過我們還需要指定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地址,直接引用插件了。審核一般幾個小時就會通過。