搭建本地Maven私服耙替,并使用Android Studio統(tǒng)一管理

由于公司項(xiàng)目多,且都依賴于一個(gè)公共Library什往,導(dǎo)致Library有變動(dòng)所有的被依賴者都需要重新修改、構(gòu)建慌闭,很繁瑣别威。而用Maven管理,只需添加如下的一行代碼到模塊的build.gradle文件中驴剔,就可以輕松解決問題了省古。

//adnroid 3.0以下使用compile,3.0及其以上可以使用api/implementation
//api/implementation的區(qū)別可以自行百度
dependencies {
  implementation 'com.android.library:lib:+'
}

以下為筆者本地配置仔拟,用的是Mac系統(tǒng)

配置Nexus

  1. 下載Nexus 官網(wǎng)地址

    Nexus示例.png

    筆者下載的是 nexus-2.14.8-01-bundle版本

  2. 解壓后衫樊,即可以在安裝目錄下看到兩個(gè)文件夾,主要是Nexus運(yùn)行環(huán)境和存儲(chǔ)Library。上傳的Library會(huì)存放在下圖storage下對(duì)應(yīng)的文件夾中科侈。


    Nexus_Path.png
  3. 命令行cd到nexus-2.14.8-01-bundle/bin目錄下载佳,使用命令 nexus start 啟動(dòng)Nexus。

    Nexus_start.png

  4. 如果啟動(dòng)成功臀栈,打開網(wǎng)頁蔫慧,訪問 http://localhost:8081/nexus/
    默認(rèn)用戶名admin,密碼admin123

    Nexus_login.png

  5. 登陸后权薯,在左側(cè)邊欄點(diǎn)擊Repositories姑躲。點(diǎn)擊Add,選擇Hosted Repository添加私有倉庫。

    Nexus_repository.png

  6. 填寫自己的Repository ID,Repository Name,把Deploymen Policy勾選為Allow Redeploy盟蚣,然后其他默認(rèn)就可以黍析,點(diǎn)擊保存。

    Nexus_create.png

    然后在列表中就可以找到我們的庫在本地的地址http://localhost:8081/nexus/content/repositories/lib/,這個(gè)地址在后面會(huì)用到
    Nexus_lib.png

配置Gradle

  1. 在需要發(fā)布的模塊下新建一個(gè)nexus_maven_push.gradle,與build.gradle同層級(jí)
    Gradle.png
  2. nexus_maven_push.gradle中主要配置的內(nèi)容有:url,authentication以及pom.project里面的信息
apply plugin: 'maven'

configurations {
    deployerJars
}

repositories {
    mavenCentral()
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "http://localhost:8081/nexus/content/repositories/lib/") {
                authentication(userName: "admin", password: "admin123")
            }
            pom.project {
                name 'test'
                version '1.0.0'
                artifactId 'lib'
                groupId 'com.android.library'
                packaging 'aar'
                description 'library for android'
            }
        }
    }
}
  1. 在該模塊下的build.gradle文件最后,添加
    apply from: 'nexus_maven.gradle'
  2. 在項(xiàng)目同步之后屎开,就可以上傳了


    Gradle_upload.png

    選擇uploadArchives,如果項(xiàng)目沒有什么問題的話阐枣,則會(huì)提示BUILD SUCCESSFUL。
    刷新網(wǎng)頁奄抽,可以看到Library已經(jīng)成功上傳


    Gradle_upload_success.png

Library使用

  1. 在項(xiàng)目的build.gradle里面聲明私服的地址:
allprojects {
    repositories {
        maven {
            url 'http://localhost:8081/nexus/content/repositories/lib/'
        }
        jcenter()
        google()
    }
}
  1. 在需要使用該模塊的build.gradle文件中蔼两,添加項(xiàng)目依賴。
dependencies {
  implementation 'com.android.library:lib:+'
}

使用+是為了同步時(shí)逞度,都會(huì)獲取到最新的版本额划。當(dāng)然固定版本號(hào)也是可以的。

dependencies {
  implementation 'com.android.library:lib:1.0.0'
}
  1. 這里的組成和提交的pom.project的信息有關(guān)档泽。
    pom.png

注意:上傳所用Android Studio的Gradle版本俊戳,需要與下載所用的一致。

關(guān)于Gradle緩存

在執(zhí)行過一次Gradle的同步之后茁瘦,Gradle會(huì)把對(duì)應(yīng)的Library的文件下載在本地品抽,之后會(huì)直接使用。所以當(dāng)我們刪除舊的Library甜熔,用同樣的pom.project信息重新上傳一個(gè)新的Library時(shí),執(zhí)行Gradle同步突倍,并不會(huì)更新最新的Library下來腔稀。這個(gè)時(shí)候可以到倉庫存儲(chǔ)路徑下把對(duì)應(yīng)的Library文件刪除。
一般來說羽历,
Mac系統(tǒng)默認(rèn)下載到:/Users/(用戶名)/.gradle/caches/modules-2/files-2.1
Windows系統(tǒng)默認(rèn)下載到:C:\Users(用戶名).gradle\caches\modules-2\files-2.1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末焊虏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子秕磷,更是在濱河造成了極大的恐慌诵闭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疏尿,居然都是意外死亡瘟芝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門褥琐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锌俱,“玉大人,你說我怎么就攤上這事敌呈∶澈辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵磕洪,是天一觀的道長吭练。 經(jīng)常有香客問我,道長析显,這世上最難降的妖魔是什么鲫咽? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮叫榕,結(jié)果婚禮上浑侥,老公的妹妹穿的比我還像新娘。我一直安慰自己晰绎,他們只是感情好寓落,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荞下,像睡著了一般伶选。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尖昏,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天仰税,我揣著相機(jī)與錄音,去河邊找鬼抽诉。 笑死陨簇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的迹淌。 我是一名探鬼主播河绽,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼唉窃!你這毒婦竟也來了耙饰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤纹份,失蹤者是張志新(化名)和其女友劉穎苟跪,沒想到半個(gè)月后廷痘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡件已,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年笋额,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拨齐。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳞陨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞻惋,到底是詐尸還是另有隱情厦滤,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布歼狼,位于F島的核電站掏导,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏羽峰。R本人自食惡果不足惜趟咆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梅屉。 院中可真熱鬧值纱,春花似錦、人聲如沸坯汤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惰聂。三九已至疆偿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間搓幌,已是汗流浹背杆故。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溉愁,地道東北人处铛。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像拐揭,于是被迫代替她去往敵國和親罢缸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理投队,服務(wù)發(fā)現(xiàn),斷路器爵川,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 縱然大魚被黑得面目全非敷鸦,但從前日初賞我即堅(jiān)定的喜愛且好評(píng)此片。今日獨(dú)往二刷大魚,依舊是感動(dòng)滿滿扒披。 約摸是我...
    挽墨閱讀 594評(píng)論 0 0
  • 今天上午在慵懶中起床值依,踩著點(diǎn)跑到昆華醫(yī)院報(bào)道就診,因?yàn)轭^天晚上媳婦已經(jīng)幫我預(yù)約好了皮膚科門診碟案,9:45到醫(yī)院正門口...
    小幸甫閱讀 147評(píng)論 1 1
  • 每一次扮叨,回家,都能看到媽媽摘回來的大籃子翠綠的各色青菜领迈,心里既心疼媽媽勞累彻磁,又心安了一把,因?yàn)檫@說明狸捅,媽媽身骨子還...
    衣顏傾心閱讀 8,507評(píng)論 0 1
  • “洋牡丹”花毛茛的花語有兩種說法:第一種花語就是“受歡迎”衷蜓。受到祝福的壽星,個(gè)性隨和尘喝、健談磁浇、廣受周遭人的仰慕、喜愛...
    鮮影兒閱讀 411評(píng)論 0 1