使用github搭建Maven倉庫

隨便巴拉湊字?jǐn)?shù)

之前寫了一篇使用nexus搭建私人maven倉庫的博客(然鵝還沒好),那時(shí)候幾句話就弄好了真的好激動啊,噼里啪啦把自己的一些庫往上加,提交,完美,還好開心寫了一篇博客記錄下來了,寫完泡了一杯茶,松松喝一口,感覺世界是多么的美好。

開心就好

有一天,公司突然有個(gè)功能,似曾相識,哦對,前幾天剛搞上去的庫里面有,心里竊喜,趕緊博客開出來,代碼一頓拷貝,當(dāng)看到localhost我好像意識到了什么。。。沒錯(cuò),那個(gè)是本地環(huán)境啊,我那個(gè)nexu倉庫提交的在家里的電腦呢,逗我呢這里怎么可能拿的到。。。


一夜回到解放前

好了,湊字?jǐn)?shù)結(jié)束


那有沒有啥方法可以一個(gè)地方提交到處可以玩呢?當(dāng)然是有哇,不然網(wǎng)上開源項(xiàng)目咋就一句話依賴就能用的呢。之前看了一個(gè)jcenter倉庫,為了提交一個(gè)項(xiàng)目上去,要申請好多的東西,而且一路專業(yè)英文,好像看了一篇是英文的教程,看完我覺得自己被英文字母淹死了,這個(gè)門檻相對較高,當(dāng)然大佬大屌們應(yīng)該是輕松容易看懂的,像我這種渣渣英文,望而卻步了。今天研究了幾篇文章,說是可以用github來作為maven倉庫的,看了看,效果還不錯(cuò),我就自己實(shí)踐下,順便優(yōu)化了一丟丟,我也來講講吧。

乖乖聽吹*

開始動手搞起來

我們創(chuàng)建一個(gè)maven倉庫是為了提交我們積累的aar庫,而且這個(gè)庫可能還會一直更新維護(hù)添加,所以我們希望到處可添加,到處可測試,到處可修改,到處可維護(hù)(當(dāng)然到處指的是你自己到處可以操作,不是別人也可以到處操作),所以我們希望github上面的倉庫不僅僅只是單一存aar文件相關(guān),還包含源碼,包含測試用的app源碼,那怎么辦?把項(xiàng)目跟源碼都提交上去咯,依賴的話只是依賴到maven倉庫里面的aar文件而已,所以最后的github倉庫的目錄是醬紫的


最后github目錄

接下來開始動手了

  • 創(chuàng)建一個(gè)簡單的安卓項(xiàng)目(略)

  • 創(chuàng)建一個(gè)module安卓庫作為要提交的aar庫(略)

  • github創(chuàng)建一個(gè)倉庫(略)

  • github倉庫與剛才創(chuàng)建的安卓項(xiàng)目建立關(guān)聯(lián)(略)
    以上都只是寫簡單的步驟,連拿來湊字?jǐn)?shù)都不想敲(懶),接下來是重點(diǎn)了,后面的同學(xué)醒醒,注意聽。


    劃重點(diǎn),期末必考
  • step1 在庫module的build.gradle文件里面添加

apply plugin: 'maven'
  • step 2 倉庫提交的配置
    首先要在本地生成相關(guān)文件,同樣在庫module的build.gradle文件里面添加
uploadArchives {
    repositories.mavenDeployer {
        //maven 本地文件地址
        def mavenLib = file(getProperty('mavenPath'))
        repository(url: "file://${mavenLib.absolutePath}")
        pom.project {
            version android.defaultConfig.versionName
            groupId GROUDID
            artifactId ARTIFACTID
        }
    }

}

注意,以上代碼跟android目錄同級別
在項(xiàng)目的gradle.properties文件里面添加參數(shù)配置(其實(shí)也可以直接在上面的代碼里面直接添加,這就像安卓布局里面直接寫文字跟配置在string資源里面一樣)

mavenPath = ..
GROUDID=com.ddstar
ARTIFACTID = maveLib

啰嗦兩句,mavenPath 這個(gè)名字隨便寫,記得在第二步的 file(getProperty('mavenPath'))配置相對應(yīng)的參數(shù)名就好了,兩個(gè).. 表示在項(xiàng)目的最外層目錄,groupId 跟artifactId 配置后的結(jié)果就是最后面我們需要依賴的目錄為groupId:artifactId:version的形式,我這邊就是com.ddstar:maveLib:1.0(最后面版本號看項(xiàng)目的版本名字配置)
以上配置結(jié)束,同步一下,如下圖就會出現(xiàn)


生成提交倉庫文件配置
  • step3 生成aar文件 和提交倉庫相關(guān)文件
    在需要生成aar的module里面添加一個(gè)簡單測試類,并條件簡單方法,生成aar文件,然后點(diǎn)擊上圖的uploadArchives,如果配置沒錯(cuò)的話,會有如下日志,并再如下目錄里能看到文件
BUILD SUCCESSFUL in 0s
25 actionable tasks: 1 executed, 24 up-to-date
16:29:40: Task execution finished 'uploadArchives'.
成功生成倉庫文件
  • step4 提交到github
    剛才我們已經(jīng)將該項(xiàng)目于github倉庫關(guān)聯(lián),現(xiàn)在只要增加倉庫文件所在整個(gè)目錄就可以了,將倉庫文件目錄整個(gè)添加到github上,然后提交,push,之后能在瀏覽器上打開看到我們剛才添加的所有文件


    提交到github

    成功了一半了,休息下。。。


    看個(gè)劇吧

倉庫依賴

上面是將aar庫文件生成的Maven殘酷提交到github,接下來是怎么依賴

  • step1 倉庫地址
    倉庫地址的格式是
https://raw.githubusercontent.com/{username}/{projeceName}/{branch}
|
|
我們的-->https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master
  • step 2項(xiàng)目依賴
    在項(xiàng)目級別的build.gradle里面添加配置
allprojects {
    repositories {
        google()
        jcenter()
        maven{//添加以下配置
            url 'https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master'
        }
    }
  • step3 測試項(xiàng)目依賴
    最后 再測試用的項(xiàng)目里面添加依賴
    implementation 'com.ddstar:maveLib:1.0'

同步下依賴成功以后,就可以調(diào)用庫里面的代碼了


最后條用成功代碼

最后注意

注意1
我們是使用git管理代碼的,所有生成的那個(gè)maven倉庫文件目錄最好不要隨意刪除,不然這次新生成一個(gè)版本,本地把之前的版本都刪掉,提交代碼以后github上面的以前版本都會被刪掉,這樣造成依賴之前版本的項(xiàng)目都會有問題(開發(fā)的時(shí)候)
注意2
aar庫module里面最好只保留項(xiàng)目相關(guān)的東西。我第一次提交是包含androidtest和test目錄,提交完測試項(xiàng)目依賴的話就依賴不了,可能是測試項(xiàng)目也有依賴的緣故,這個(gè)還不是很確定
注意3
每次提交新版本都改一下版本名,才會提交新的版本,不然會覆蓋原來舊版

結(jié)束的字體要比其他的大,下課

頂~叮~叮
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,273評論 6 342
  • |-1-更新內(nèi)容[6.從倉庫解析依賴的機(jī)制(重要)] 1Maven倉庫作用 倉庫用來存儲所有項(xiàng)目使用到構(gòu)件,在ma...
    zlcook閱讀 6,458評論 0 25
  • 每個(gè)人都到了開始規(guī)劃自己未來的時(shí)候,其實(shí)很早以前就需要開始思考這個(gè)問題。但是每次都是一拖再拖,再加上知識匱乏和信息...
    年年廿閱讀 241評論 0 0
  • 小編前幾日又看到一篇新聞,烏魯木齊一5歲女孩在家中模仿動畫片里面的情節(jié),撐著一把傘從11樓跳下摔成重傷進(jìn)ICU。 ...
    電娛時(shí)代閱讀 464評論 0 0

友情鏈接更多精彩內(nèi)容