搭建本地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)境和存儲Library。上傳的Library會存放在下圖storage下對應(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è)地址在后面會用到
    Nexus_lib.png

配置Gradle

  1. 在需要發(fā)布的模塊下新建一個(gè)nexus_maven_push.gradle,與build.gradle同層級
    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)目沒有什么問題的話,則會提示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í),都會獲取到最新的版本。當(dāng)然固定版本號也是可以的。

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會把對應(yīng)的Library的文件下載在本地,之后會直接使用。所以當(dāng)我們刪除舊的Library,用同樣的pom.project信息重新上傳一個(gè)新的Library時(shí),執(zhí)行Gradle同步,并不會更新最新的Library下來。這個(gè)時(shí)候可以到倉庫存儲路徑下把對應(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)容合作請聯(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,578評論 19 139
  • 縱然大魚被黑得面目全非,但從前日初賞我即堅(jiān)定的喜愛且好評此片。今日獨(dú)往二刷大魚,依舊是感動(dòng)滿滿。 約摸是我...
    挽墨閱讀 723評論 0 0
  • 今天上午在慵懶中起床,踩著點(diǎn)跑到昆華醫(yī)院報(bào)道就診,因?yàn)轭^天晚上媳婦已經(jīng)幫我預(yù)約好了皮膚科門診,9:45到醫(yī)院正門口...
    小幸甫閱讀 174評論 1 1
  • 每一次,回家,都能看到媽媽摘回來的大籃子翠綠的各色青菜,心里既心疼媽媽勞累,又心安了一把,因?yàn)檫@說明,媽媽身骨子還...
    衣顏傾心閱讀 9,086評論 0 1
  • “洋牡丹”花毛茛的花語有兩種說法:第一種花語就是“受歡迎”。受到祝福的壽星,個(gè)性隨和、健談、廣受周遭人的仰慕、喜愛...
    鮮影兒閱讀 455評論 0 1

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