使用gradle發(fā)布aar到jcenter倉庫
一传睹、前言
目前Android Studio 新建工程時 ,在工程路徑下的build.gradle 中 默認生成如下
repositories {
google()
jcenter()
}
默認支持 jcenter,其他如maven 還要手動添加 例如
repositories {
maven{ url"https://maven.google.com"}
mavenCentral()
maven { url "https://jitpack.io" }
}
二 迂苛、準備工作
1 注冊bintray賬號
1 進入 https://bintray.com/ 注冊賬號 ,注冊需要翻墻歧蕉,
注意不能使用 qq.com 結尾這樣的郵箱灾部,果然 調整漢子順序不影響閱讀,搞笑一下 我們繼續(xù)擼惯退。
2 注冊完成后赌髓,需要登錄郵箱點擊鏈接激活;當然也可以選擇第三方登錄催跪,比如github 锁蠕。
2 獲取api key
登錄后,選擇 Edit Profile
或 打開https://bintray.com/profile/edit
左邊菜單的最下面有API Key選項懊蒸,點擊后:
輸入密碼點擊 submit 荣倾,會顯示Your API key,復制API key,gradle 配置中會用到骑丸。
3 創(chuàng)建倉庫
點擊 New Repository
name:倉庫名稱 可以隨便取 舌仍,復制name,gradle配置中需要
type: 倉庫類型 我們選擇 Maven
Licenses :許可證 通危,不太了解铸豁,跟gradle配置中保持一致就行了。
倉庫創(chuàng)建好了 我們就可以上傳jar了菊碟。
三节芥、配置gradle項目
1 創(chuàng)建 Android Studio 項目,
添加一個module 比如我的是 permission ,在permission中進行相關功能的處理
2 配置gradle
1 在工程目錄下的gradle 中添加發(fā)布項目的插件.
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
//兩個幫助發(fā)布項目的插件
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
2 在 module 目錄中添加 gradle.properties(如果沒有的話)內容如下:
3 在 local.properties 中配置用戶名和apikey(bintrary.com剛申請的)
4 在module 的gradle 中配置
根節(jié)點添加 如下:
// 上傳插件
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
version = MAVEN_VERSION
def siteUrl = 'https://github.com/xxx/xxxx' // project homepage
def gitUrl = 'https://github.com/xxx/xxxx.git' // project git
group = MAVEN_GROUP_ID// Maven Group ID for the artifact
// 根節(jié)點添加
install {
repositories.mavenInstaller {
// This generates POM.xml with proper parameters
pom {
project {
//version MAVEN_VERSION
//groupId MAVEN_GROUP_ID
//artifactId MAVEN_ARTIFACT_ID
packaging MAVEN_PACKAGING
description MAVEN_DESCRIPTION
name MAVEN_NAME
url MAVEN_URL
inceptionYear MAVEN_INCEPTION_YEAR
scm {
tag "1.0"
url siteUrl
connection gitUrl
developerConnection gitUrl
}
licenses {
license {
name 'The Apache Software License, Version 2.0'//剛才創(chuàng)建倉庫時的許可證
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
//distribution "repo"
}
}
developers {
developer {
id POM_DEVELOPER_ID
name POM_DEVELOPER_NAME
email POM_DEVELOPER_EMAIL
}
}
}
}
}
}
//打包 sourcesjar
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
//打包 javadocjar
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives javadocJar
archives sourcesJar
}
Properties properties = new Properties()
boolean isHasFile = false
if (project.rootProject.file('local.properties') != null){
isHasFile = true
properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
bintray {
user = isHasFile ? properties.getProperty("bintray.user") : System.getenv("bintray.user")
key = isHasFile ? properties.getProperty("bintray.apikey") : System.getenv("bintray.apikey")
configurations = ['archives']
pkg {
repo = "maven"http://倉庫名稱
name = MAVEN_NAME//項目名稱 project name in jcenter
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
}
}
備注 :
1 repo :倉庫名稱 是在bintrary 創(chuàng)建的倉庫名头镊,能找到就行了
2 gitUrl : 項目鏈接地址 不能為空地址蚣驼。
5 上傳
1 最方便的方式 選擇如下
2 在Terminal中 輸入命令行方式
麻煩 就不寫出來了。
如果出現此種錯誤
在上傳過程中執(zhí)行了javadoc檢查相艇,所以可能會報上面的錯誤,解決方法就是避免進行javadoc的檢查颖杏。
1 注釋
artifacts {
//archives javadocJar
archives sourcesJar
}
2 在工程根目錄下的 build.gradle下面添加如下配置:
allprojects {
repositories {
google()
jcenter()
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
options.addStringOption('encoding', 'UTF-8')
}
}
審核結果
1 登錄 https://bintray.com
選擇 Repository -> 上傳的項目 --> 點擊項目詳情--->進入具體版本
找到 Add To jcenter,點擊進入后厂捞,寫一些該庫的描述 就可以提交了输玷。
注意 :右上角 包含一個Edit按鈕,點擊進入后靡馁,可以刪除當前版本欲鹏。
2 審核等待兩三個小時 就會有結果,
通過或通不過都會有通知和郵件提示臭墨。
如上形式 說明審核通過了赔嚎,就可以愉快的使用我們的jar了
此外還可以根據你上傳的groupId,訪問該網站
https://jcenter.bintray.com/你的groupId
例如https://jcenter.bintray.com/com/github/zuochunsheng/如能引用,則可以看到如下:依賴使用
1 Maven Info 含有jar依賴方式
在需要的工程 gradle dependencies中 添加如下
compile 'com.github.zuochunsheng:permission:0.3'
就能使用這個 6.0權限申請的庫了胧弛。
簡單介紹一下 尤误,如下 使用還挺簡單,方便结缚。
//工具類 使用方式
PermissionUtil.getInstance(this)
.requestRunTimePermission(new String[]{Manifest.permission.CALL_PHONE,
Manifest.permission.WRITE_EXTERNAL_STORAGE},
new IPermission() {
@Override
public void onGranted() {
Toast.makeText(MainActivity.this,"所有權限都同意了",Toast.LENGTH_SHORT).show();
}
@Override
public void onDenied(List<String> deniedPermission) {
for (String permission :deniedPermission) {
Toast.makeText(MainActivity.this,"被拒絕權限:" + permission,Toast.LENGTH_SHORT).show();
}
}
}
);
需要注意一點 损晤,同一個版本的包只能上傳一次 ,除非把該版本刪除 红竭,
需要更新 則需要增加版本號 尤勋,上傳成功后可以直接使用 不在需要 add to jcenter 等待審核,更新相當方便茵宪。由此 并不能保證更新版本的準確性最冰,bintray更新就是, 只管上傳成功 哪管是好是壞稀火。