使用簡單的方法發(fā)布自己的android開源庫

在android開發(fā)的過程中氨菇,我們經(jīng)常使用一些大神或者前輩們打包好的開源庫和功能組件,這些開源項(xiàng)目給我們的開發(fā)帶來了極大的便利,我們通過簡單的幾行代碼就可以為自己的應(yīng)用添加上一個(gè)好用的功能模塊余佃,類似這樣:

使用github上的開源庫

下面我們就親自動(dòng)手來發(fā)布自己的開源庫蔽氨。
在網(wǎng)上查閱了好多大神的教程藐唠,也照著做了,但是都沒有成功鹉究,因?yàn)榕渲胋uild.gradle那塊比較復(fù)雜宇立,老是出現(xiàn)各種問題,后來我通過觀察其他有名的開源項(xiàng)目發(fā)現(xiàn)國外大神已經(jīng)把大部分的gradle配置操作幫我們做好了自赔,并打包了一個(gè)很好用的開源項(xiàng)目妈嘹,點(diǎn)這里 我們只需要引用就可以了,在此表達(dá)下對(duì)大神的景仰绍妨!

一润脸、首先你得有自己的開源項(xiàng)目

23333,其實(shí)暫時(shí)沒有也沒關(guān)系他去,目前主要是來學(xué)習(xí)怎么發(fā)布毙驯,隨便找一個(gè)項(xiàng)目練練手就行。
假設(shè)現(xiàn)在你已經(jīng)有了一個(gè)android studio項(xiàng)目灾测。

1.在自己的項(xiàng)目上尔苦,右鍵,新建一個(gè)moudle:

新建moudle

注意選擇moudle類型是Android Library:

選擇類型

完成了之后你的project下就會(huì)多出來一個(gè)類似這樣的moudle:

library

名字你可以寫你自己的library的名字行施。然后就可以在這個(gè)library中編寫你的代碼允坚。這里我為了方便,刪掉了所有的測試代碼蛾号,如果你有編寫測試的話稠项,可以保留。

二鲜结、jFrog bintrary操作

1.開通JFrog

打開jFrog bintrary注冊賬號(hào)展运,可以用github賬號(hào)或者google賬號(hào)直接登錄。

2.創(chuàng)建maven倉庫

這一步和創(chuàng)建git倉庫稍微有些類似精刷。

創(chuàng)建maven倉庫

填寫倉庫信息

這里需要注意的一點(diǎn)是倉庫名字必須填maven拗胜,否則后面上傳的時(shí)候會(huì)有錯(cuò)誤,這個(gè)有點(diǎn)奇怪怒允,后面有時(shí)間再看下埂软。

3.添加package

倉庫建好后開始進(jìn)入你的倉庫,添加一個(gè)package纫事。

添加package
填寫package信息

這里弄完了之后勘畔,jFrog的配置基本上就弄好了所灸。

三、library發(fā)布前的配置

1.首先打開你的project下的build.gradle,修改成下面這樣

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'//你的gradle版本
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'//添加maven插件
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        classpath 'com.novoda:bintray-release:0.4.0'//引入我們前面所說的插件(關(guān)鍵)
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

這里有個(gè)問題就是gradle版本和maven插件版本的匹配問題炫七,大家要找到和自己的gradle版本匹配的maven插件爬立。

2.編輯library所在的moudle下的build.gradle。

同樣打開文件万哪,對(duì)應(yīng)下面的標(biāo)注修改侠驯。
這里為了方便,我刪掉了所有的測試模塊相關(guān)的內(nèi)容奕巍,因?yàn)槲覜]有寫任何的測試代碼吟策,如果你有寫測試代碼的話,可以保留測試模塊伍绳。

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.novoda.bintray-release'//添加插件

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 2
        versionName "1.0.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
    }
}



allprojects {
    tasks.withType(Javadoc) {//兼容中文字符
        options{
            encoding "UTF-8"
            charSet 'UTF-8'
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
}

publish {
    userOrg = 'misakamikoto'//bintray.com 用戶名踊挠,在你登錄jfrog后右上角可以看到,例如我的是misakamikoto
    groupId = 'com.mewlxy.commontitlebar'//JCenter上顯示的路徑 path
    artifactId = 'CommonTitleBar'//項(xiàng)目名稱 之前填寫過的library名稱
    publishVersion = '1.0.1'//版本號(hào) version code
    desc = 'this is a common titlebar for android'//項(xiàng)目描述 description
    website = 'https://github.com/lxygithub/CommonTitleBar' //項(xiàng)目網(wǎng)址鏈接 link
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-compat:25.3.1'
}

3.編譯冲杀、打包和上傳

com.novoda:bintray的主頁效床,我們可以看到使用說明,非常簡單权谁,一句命令就搞定了剩檀。
先在你的android studio下方找到Terminal,打開它旺芽。
然后輸入線面這條命令:

gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false

這里需要填寫兩個(gè)參數(shù)沪猴,BINTRAY_USERNAME就是我們上面填寫的那個(gè)jFrog上的username。
BINTRAY_KEY在這里可以看到:

點(diǎn)擊Edit profile
點(diǎn)擊API Key

然后在顯示的輸入框中輸入你的密碼采章,就可以看到了运嗜。

把上面的命令中的兩個(gè)參數(shù)替換了之后,回車執(zhí)行就可以了悯舟。成功后你會(huì)在命令行中看到BUILDED SUCCESS的字樣担租。

從上面的命令我們可以看出一共執(zhí)行了三條命令,分別是clean抵怎、build和bintraryUpload奋救,也就是這條命令把gradlew clean、gradlew build和gradlew bintraryUpload這三個(gè)命令合成了一條反惕,如果你只是想執(zhí)行其中一個(gè)操作的話尝艘,也可以單獨(dú)執(zhí)行命令,只有bintraryUpload命令是需要傳username和key參數(shù)的姿染。

四背亥、提交到j(luò)center審核

命令執(zhí)行成功之后,你的library下面的build目錄下的outputs文件夾下會(huì)多出幾個(gè)文件類似這樣:

生成的文件

這些就是被上傳到j(luò)center的庫文件。

回到j(luò)frog,可以看到我們剛才上傳成功的package file:


新增的package

點(diǎn)擊它隘梨,進(jìn)入:

提交審核

提交

提交完成之后程癌,等待一段時(shí)間舷嗡,審核通過之后(審核通過會(huì)有右鍵提醒)轴猎,就可以在項(xiàng)目中愉快的使用開源庫了。:)
當(dāng)你的library更新時(shí)进萄,就重新使用命令build并上傳就可以了捻脖。切記要更改版本號(hào)!
我的gradle配置中鼠,大家可以參考下可婶。

參考資料

http://blog.csdn.net/hejjunlin/article/details/52452220
http://blog.chengdazhi.com/index.php/217

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市援雇,隨后出現(xiàn)的幾起案子矛渴,更是在濱河造成了極大的恐慌,老刑警劉巖惫搏,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具温,死亡現(xiàn)場離奇詭異,居然都是意外死亡筐赔,警方通過查閱死者的電腦和手機(jī)铣猩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茴丰,“玉大人达皿,你說我怎么就攤上這事』呒纾” “怎么了峦椰?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長汰规。 經(jīng)常有香客問我汤功,道長,這世上最難降的妖魔是什么控轿? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任冤竹,我火速辦了婚禮,結(jié)果婚禮上茬射,老公的妹妹穿的比我還像新娘鹦蠕。我一直安慰自己,他們只是感情好在抛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布钟病。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肠阱。 梳的紋絲不亂的頭發(fā)上票唆,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音屹徘,去河邊找鬼走趋。 笑死,一個(gè)胖子當(dāng)著我的面吹牛噪伊,可吹牛的內(nèi)容都是我干的簿煌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鉴吹,長吁一口氣:“原來是場噩夢啊……” “哼姨伟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起豆励,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤夺荒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后良蒸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體技扼,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年诚啃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淮摔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡始赎,死狀恐怖和橙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情造垛,我是刑警寧澤魔招,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站五辽,受9級(jí)特大地震影響办斑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杆逗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一乡翅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罪郊,春花似錦蠕蚜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腺毫。三九已至,卻和暖如春挣柬,著一層夾襖步出監(jiān)牢的瞬間潮酒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工邪蛔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留急黎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓店溢,卻偏偏與公主長得像叁熔,于是被迫代替她去往敵國和親委乌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子床牧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa...
    猿ape閱讀 1,695評(píng)論 5 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,081評(píng)論 25 707
  • 由于本篇文章的排版問題,不利于閱讀遭贸,請(qǐng)看排版后的文章:傳送門 引言 使用Android Studio開發(fā)的童鞋戈咳,相...
    SupLuo閱讀 1,584評(píng)論 0 50
  • 回憶過去并不是因?yàn)橛X得現(xiàn)在過得不好,而是覺得或許還可以過得更好壕吹,但需要付出更多的時(shí)間和精力著蛙。 回憶過去...
    粘你的影閱讀 230評(píng)論 0 0
  • 一、存儲(chǔ)數(shù)據(jù) 1耳贬、數(shù)據(jù)存儲(chǔ)是保存在手機(jī)里面的踏堡。 2、plist文件存儲(chǔ)一般都是存取字典和數(shù)據(jù)咒劲,直接寫成plist文...
    耿杰閱讀 599評(píng)論 0 0