Maven上傳(二)

使用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

image.png

或 打開https://bintray.com/profile/edit
左邊菜單的最下面有API Key選項懊蒸,點擊后:
image.png

輸入密碼點擊 submit 荣倾,會顯示Your API key,復制API key,gradle 配置中會用到骑丸。

3 創(chuàng)建倉庫

點擊 New Repository


image.png

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(如果沒有的話)內容如下:


image.png

3 在 local.properties 中配置用戶名和apikey(bintrary.com剛申請的)


image.png

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 最方便的方式 選擇如下


image.png

2 在Terminal中 輸入命令行方式
麻煩 就不寫出來了。

如果出現此種錯誤


image.png

在上傳過程中執(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 審核等待兩三個小時 就會有結果,
通過或通不過都會有通知和郵件提示臭墨。

image.png

如上形式 說明審核通過了赔嚎,就可以愉快的使用我們的jar了
此外還可以根據你上傳的groupId,訪問該網站https://jcenter.bintray.com/你的groupId例如https://jcenter.bintray.com/com/github/zuochunsheng/如能引用,則可以看到如下:
image.png

依賴使用

1 Maven Info 含有jar依賴方式


image.png

在需要的工程 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更新就是, 只管上傳成功 哪管是好是壞稀火。

參考
使用Gradle發(fā)布aar項目到JCenter倉庫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末暖哨,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子凰狞,更是在濱河造成了極大的恐慌篇裁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赡若,死亡現場離奇詭異茴恰,居然都是意外死亡,警方通過查閱死者的電腦和手機斩熊,發(fā)現死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伐庭,“玉大人粉渠,你說我怎么就攤上這事分冈。” “怎么了霸株?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵雕沉,是天一觀的道長。 經常有香客問我去件,道長坡椒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任尤溜,我火速辦了婚禮倔叼,結果婚禮上,老公的妹妹穿的比我還像新娘宫莱。我一直安慰自己丈攒,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布授霸。 她就那樣靜靜地躺著巡验,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碘耳。 梳的紋絲不亂的頭發(fā)上显设,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音辛辨,去河邊找鬼捕捂。 笑死,一個胖子當著我的面吹牛愉阎,可吹牛的內容都是我干的绞蹦。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼榜旦,長吁一口氣:“原來是場噩夢啊……” “哼幽七!你這毒婦竟也來了?” 一聲冷哼從身側響起溅呢,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤澡屡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后咐旧,有當地人在樹林里發(fā)現了一具尸體驶鹉,經...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年铣墨,在試婚紗的時候發(fā)現自己被綠了室埋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖姚淆,靈堂內的尸體忽然破棺而出孕蝉,到底是詐尸還是另有隱情,我是刑警寧澤腌逢,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布降淮,位于F島的核電站,受9級特大地震影響搏讶,放射性物質發(fā)生泄漏佳鳖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一媒惕、第九天 我趴在偏房一處隱蔽的房頂上張望系吩。 院中可真熱鬧,春花似錦吓笙、人聲如沸淑玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽絮蒿。三九已至,卻和暖如春叁鉴,著一層夾襖步出監(jiān)牢的瞬間土涝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工幌墓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留但壮,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓常侣,卻偏偏與公主長得像蜡饵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胳施,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容