AndroidStudio加速之--(一)構件倉庫Artifactory

相關文章:
AndroidStudio加速之–構件倉庫Artifactory【本文】
AndroidStudio加速之–巧用Project Template

一、前言

想必大家使用AS的時候都會遇到過下載gradle過慢,或者其他依賴倉庫訪問也會過慢的問題,導致第一次運行項目總要或多或少的等待幾個些許的時間。後來遇到了Nexus,好用是好用,可是界面實在不敢恭維,太醜了【不好意思我對UI可能要求高了】,導致懶得用。最近被人安利了另一款相同功能,甚至更強大的倉庫管理工具Artifactory,我去官網一看,行啊,UI不錯,那就搞起來吧。
然後網上搜了一圈發現都是舊版本的一些教程,而且設置等位置也都跟新版相比有了一定的不同,目前官方最新的是7.3.2版本的,我就使用最新版本在本地電腦(運維人員可以直接搭建到公司內網)上搭建一下,記錄一下自己走過的彎路。

再多提一句,雖然這個東西公司有運維人員的話會幫我們搞定,但是我們自己做一遍,知道個所以然不是更好麼,生命在於折騰。

二、Artifactory使用流程

2.1、下載

ArtiFactory的中文網址,可以看到官網上有免費試用的功能,我們就先用這個試用版本來進行講解【當然你可以拉到屏幕底部選擇開源版本的進行嘗試】。
點擊免費試用後,會讓你填寫一些基本信息例如郵箱等(最好不要QQ郵箱,驗證不通過,可以選擇gmail等),郵箱驗證通過後會給你發送一封郵件,裏面包含了下載地址以及JFrog Platform License Key,這個Key我們下文會使用到的,如下所示:
在這裏插入圖片描述
然後點擊鏈接去下載即可,我下載的是jfrog-artifactory-pro-7.3.2-windows.zip win版本的。下載完畢後直接解壓到本地磁盤的非中文目錄下即可,例如我這裏是E:\Repo\artifactory-pro-7.3.2

2.2、啓動服務

打開上文artifactory文件夾,進入app/bin目錄下,然後雙擊artifactory.bat即可,然後會彈出dos窗口,顯示 Starting all services,這一步可能需要耗時很久(可能由於我的筆記本老舊的緣故,這裏耗費很久的時間,甚至我關掉dos窗口重新執行了一遍),此時你在瀏覽器中輸入http://localhost:8081/artifactory/,然後一定要耐心等待,剛開始服務沒啓動起來的時候可能無法顯示此網頁,但是等服務慢慢啓動起來的話你刷新後就可以看到如下的loading動畫了。
在這裏插入圖片描述

2.3、登錄

當你的服務完全啓動起來後就顯示登錄頁面了,此時默認登錄的賬號爲admin,密碼爲password。成功登錄後會彈出來一些設置選項我們直接跳過所有設置,然後會顯示讓你輸入License Key的選項了,此時將我們郵件中收到的Key粘貼進去即可。

2.4、配置倉庫

首先有三種倉庫,如下所示:
在這裏插入圖片描述
第一種本地倉庫Local,這個倉庫中可以上傳一些我們自己開發的插件以及gradle-x.x.x-all.zip文件,這樣免去每次去下載gradle文件的麻煩了。
第二種是遠程倉庫Remote,比如我們在工程的gradle文件中使用的jcenter,google,maven等倉庫,我們在這裏可以統一使用阿里雲的倉庫代理。
第三種是虛擬倉庫Virtual,在這裏我們可以將前兩者全部進行組合代理。也就是說我們原來在gradle中分別依賴的各種倉庫

    repositories {
        google()
        jcenter()
        ...
    }

現在只需要依賴這麼一個虛擬倉庫就可以了,下文細講。

    repositories {
        maven { url 'http://localhost:8082/artifactory/virtual/' }
    }

接下來我們分別嘗試創建下這些倉庫:

2.4.1、本地倉庫

首先我們在本地倉庫中創建,如下所示:
在這裏插入圖片描述
點擊右側加號創建新的本地倉庫後,會彈出選項讓你選擇倉庫類型,這裏我們選擇maven倉庫即可:
在這裏插入圖片描述
然後還必須填寫一個Repository Key,這裏我們隨意填寫local即可。
然後我們需要給我們這個本地倉庫上傳一些需要的文件上去,對的,gradle文件必須給它扔進去,不然每次去官網下真的是慢的一批。

但是但是:
在部署之前我們需要調整下設置,因爲默認的上傳文件大小是不能大於100M,可是我們的gradle壓縮包肯定超過了。打開Administration->Artifactory:
在這裏插入圖片描述
在右側的General中點擊Setting,然後設置如下(只要大小超過gradle文件的大小即可,gradle5.6.4版本的是134M),我這裏就設置了200M:
在這裏插入圖片描述
設置好後我們按照下圖所示,一步步打開相應的菜單:
在這裏插入圖片描述
在左側的菜單中一次選擇Artifactory->Artifacts然後在右側面板中選擇剛剛我們新建的local倉庫,然後點擊右上角的Deploy進行部署。
點擊後會彈出如下所示彈窗,選擇目標倉庫是剛剛創建的local,然後下面選擇gradle文件。這裏的gradle文件是指那些gradle-x.x.x-all.zip文件,例如gradle-5.6.4-all.zip的遠程地址是:https://services.gradle.org/distributions/gradle-5.6.4-all.zip,在AS的gradle/wrapper文件夾下可以看到有這個屬性文件。我們將下載好的壓縮包直接上傳到這個倉庫即可。
在這裏插入圖片描述
上傳完後就可以看到這個gradle文件了,如圖所示,注意右側的gradle地址,下文AndroidStudio中需要用到:
本地倉庫中的gradle
然後本地的倉庫到這裏已經創建好了。

2.4.2、遠程倉庫

遠程倉庫配置起來超級簡單,因爲我們把對應的倉庫指向阿里雲的源就好了,阿里雲提供的倉庫服務地址爲 https://maven.aliyun.com/mvn/view。可以看到裏面代理了有jcenter以及goole的倉庫。
首先選擇Remote Tab,然後一樣的創建新倉庫,然後選擇maven類型,然後就是配置我們工程裏面用的google和jcenter兩個倉庫,你用到了那些記得就配置哪些,可多配不可少配。google倉庫的遠程代理如下所示:
在這裏插入圖片描述
其他遠程代理倉庫同理。

2.4.3、虛擬倉庫

好了現在進入主角了,因爲我們上面已經有兩個倉庫了,分別再配到AS裏面也是麻煩。所以artifactory也是貼心的給了個組合的選項,也就是虛擬倉庫,我們可以在這裏將之前的Local和Remote倉庫統一導入這裏。
點擊Vertical Tab,然後同樣一樣的創建新倉庫,選擇maven類型,然後填寫Repository Key,比如我這裏是virtual。然後重點來了,往下滾動網頁,如下圖所示,在Repositories中將我們之前創建的本地倉庫local以及兩個遠程倉庫google和jcenter添加到右側(打碼的地方是我測試使用的,以免大家混淆),然後點擊右下角save,大功告成:
在這裏插入圖片描述

2.5、其他設置

  • 上傳文件大小更改,這一步在2.4.1中進行了說明
  • 需要允許匿名訪問,否則AS構建的時候會提示401錯誤,如下圖所示:
    在這裏插入圖片描述

三、AndroidStudio配置

當倉庫全部配置完成後,此時我們將AS的依賴也重新進行配置:

3.1、gradle-wrapper.properties文件

該文件位於項目的 gradle/wrapper 目錄下,打開該文件將gradle地址修改爲我們的本地倉庫中的gradle地址:

#Sun Mar 01 12:18:28 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=http\://localhost:8082/artifactory/local/gradle-5.6.4-all.zip

我們將services.gradle.org網址的gradle文件配置成了本地倉庫中的文件,這樣只要本地倉庫有文件的,新工程用起來妥妥的飛快。

3.2、項目的build.gradle文件

將buildscript和allprojects節點下的repositories進行修改,從其他的遠程依賴,全部依賴成我們本地的虛擬倉庫。

    repositories {
//        google()
//        jcenter()
//        ...這些都不要了,全部用下面本地的
        maven { url 'http://localhost:8082/artifactory/virtual/' }
    }

AS的配置完畢後此時構建項目,可以看到在artifactory中會下載各種構件了,如下所示,這樣當局域網中的其他小夥伴需要的時候可以直接局域網的artifactory中下載了,速度不是一般的快。
在這裏插入圖片描述

四、總結

我們通過上文我們通過在本機上進行Artifactory的搭建和使用演示,相信大家知道這個東西的重要作用了。真的用在公司內網中的話是對每個開發人員的福利,只要一個人下載了所需的構件其他的人再使用的時候,飛速的就可以從內網上下載下來。簡直就是“一人得道,雞犬升天”有沒有,哈哈哈,完美。

結束了麼,我還得再添加幾句,我們上文已經都處理好了,但是每次一新建工程還是要倉庫地址和Gradle地址再手動更改一遍,是不是很不人性化,有沒有辦法新建工程的時候直接把這兩個地方更改掉呢,有!答案請看下文:
AndroidStudio加速之–巧用Project Template

最後說下,我最近寫的一些文章知識點基本快串聯起來了。下面是相關的文章:
AndroidStudio加速之–(一)構件倉庫Artifactory
Android NDK、JNI之–(四)so打包發佈aar
AndroidStudio加速之–(三)發佈aar到Artifactory
Android 編譯插樁之–自定義Gradle插件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章