Android 進階——比Nexus 更強大的本地maven倉庫軟件JFrog Artifactory 使用詳解

引言

前面開發 Gradle 插件系列文章介紹了本地maven倉庫搭建軟件Nexus的使用,今天介紹一個升級版的“Nexus”——JFrog Artifactory的使用。

一、JFrog Artifactory 概述

藉助本地maven倉庫,我們可以把項目重構爲以下的架構

藉助maven遠程庫我們可以輕易查詢出各個第三方的開放庫所需要依賴的庫。
在這裏插入圖片描述

二、JFrog Artifactory Pro 破解

下載JFrog Artifactory 6.x Pro 的軟件和破解包,解壓之後以管理員啓動cmd並切換到artifactory-injector-1.1 jar包對應的路徑下執行
在這裏插入圖片描述
當注入構件完畢之後,會再次彈出選項列表,輸入1 就可以生成License在這裏插入圖片描述
回到Artifactory的解壓目錄,執行artifactory.bat批處理腳本,然後在瀏覽器打開http://localhost:8081/鏈接,
在這裏插入圖片描述
Artifactory啓動成功後,根據提示需要輸入生成 License key即可,接下來Enjoy Artifactory吧。

每次通過瀏覽器打開Artifactory 時記得先啓動批處理腳本,否則你會收到404的。

三、創建Artifactory 倉庫

Artifactory提供了三種類型的倉庫:本地倉庫Local、遠程倉庫Remote和虛擬倉庫Virtual。

1、本地倉庫Local

本地倉庫可以通過Deploy上傳並保存一些本地的構件,包括jar包、aar、壓縮包、文件等等一切本地的文件,適用於保存一些靜態不會經常變化的構件。
在這裏插入圖片描述

2、遠程倉庫Remote

遠程倉庫Remote 允許通過映射關係來直接引用或者代理現有的遠程倉庫,比如說可以直接代理阿里雲的Maven倉庫等等。
在這裏插入圖片描述
阿里雲Maven 倉庫列表

倉庫名 簡介 實際地址 使用(代理)地址
jcenter JFrog公司提供的倉庫 http://jcenter.bintray.com https://maven.aliyun.com/repository/jcenter
mavenLocal 本臺電腦上的倉庫 {USER_HOME}/.m2/repository {USER_HOME}/.m2/repository(Windows) /home/{USER}/.m2/repository (Linux)
mavenCentral Sonatype公司提供的中央庫 http://central.maven.org/maven2 https://maven.aliyun.com/repository/central https://maven.aliyun.com/nexus/content/repositories/central
google Google公司提供的倉庫 https://maven.google.com https://maven.aliyun.com/repository/google https://maven.aliyun.com/nexus/content/repositories/google https://dl.google.com/dl/android/maven2
jitpack JitPack提供的倉庫 https://jitpack.io https://jitpack.io
public jcenter和mavenCentral的聚合倉庫 https://maven.aliyun.com/repository/public https://maven.aliyun.com/nexus/content/groups/public
gradle-plugin Gradle插件倉庫 https://plugins.gradle.org/m2 https://maven.aliyun.com/repository/gradle-plugin https://maven.aliyun.com/nexus/content/repositories/gradle-plugin

3、虛擬倉庫Virtual

Virtual 虛擬倉庫既不能接收上傳的構件也不能與現有的遠程倉庫建立具體的映射關係,主要用於把Artifactory 裏的倉庫進行分組,這樣子需要引入多個倉庫時不必把每一個的鏈接地址都貼出來,只需要把這些倉庫關聯到一個Virtual 裏然後 引入這個Virtual庫就可以了
在這裏插入圖片描述

四、Android Studio使用Artifactory 倉庫

記得先啓動Artifactory

1、引入gradle 插件

gradle/wrapper/gradle-wrapper.properties

#Tue Mar 24 11:10:36 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
//改成你自己的Artifactory Local倉庫
distributionUrl=http\\://localhost:8081/artifactory/android-gradle/gradle-5.4.1-all.zip

2、引入google、jcenter maven庫

buildscript {
    repositories {
        maven{
            url 'http://localhost:8081/artifactory/list/android-basic-group/'
        }
        google()
        jcenter()
    }
}

allprojects {
    repositories {
        maven{
            url 'http://localhost:8081/artifactory/list/android-basic-group/'
        }
        google()
        jcenter()
    }
}
...

當Gradle 構建項目時候是按照順序進行解析加載的,當可以從配置的maven庫加載到需要的庫時,就不會再到google、jcenter的maven庫中去加載了。如果你覺得每一個項目都需要這樣配置比較麻煩的話,那麼可以新建一個名爲init.gradle的腳本:

buildscript {
    repositories {
         maven{
            url 'http://localhost:8081/artifactory/list/android-basic-group/'
        }
        google()
        jcenter()
    }
}
    
allprojects {
    repositories {
         maven{
            url 'http://localhost:8081/artifactory/list/android-basic-group/'
        }
        google()
        jcenter()
    }
}

並複製到到USER_HOME/.gradle/下即可,當Gradle構建項目時就會跑到android-basic-group映射的倉庫中去下載庫,最後依然是緩存到.gradle下對應的目錄中。

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