Java開發者必備神器Maven國內鏡像加速深度測試

Maven是當前流行的項目管理工具,但官方的庫在國內常常連不上,連上之後龜通常的速度也能讓你崩潰,這時候也許你會去搜索下如何加速。 百度搜索 maven鏡像 會發現絕大部分都在推薦 阿里雲 的鏡像服務,可是阿里雲的鏡像服務真的好用嗎?去國內各大雲廠商搜索了下發現都提供了鏡像服務,到底哪一個是最快的呢?這裏進行深度測試。各大廠商也是雞賊,對關鍵字也作了處理好比騰訊的 騰訊雲鏡像maven 騰訊雲maven鏡像緩存

鏡像地址

咱們分表從用戶體驗、下載速度進行評測bash

用戶體驗

阿里雲

  • 打開阿里雲maven鏡像網址 maven.aliyun.com/mvn/view 列出了所代理的鏡像地址,基本經常使用的都在列了,具體如何配置很難找打,若是你細心的話會發現右上角有一個 使用指南 的連接

1-ali-help

  • 進去使用指南界面,這個界面符合阿里全部幫助文檔的風格,第一部分是代理倉庫列表,第二部分爲配置指南,包含 mvn和gradle的配置詳解,直接複製配置到 settings.xml 文件便可
<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里雲公共倉庫</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>
複製代碼

1-ali-conf

騰訊雲

  • 打開騰訊雲maven鏡像地址 mirrors.cloud.tencent.com/ 以列表的形式列出了全部支持的軟件源,一樣在右上角有 很不明顯的文檔連接

2-tencent-help

  • 進去之後須要認真查看才能看到maven鏡像加速的配置,簡單介紹瞭如何進行配置,一樣提供了一鍵複製功能
<mirror>
     <id>nexus-tencentyun</id>
     <mirrorOf>*</mirrorOf>
     <name>Nexus tencentyun</name>
     <url>http://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
 </mirror>
複製代碼

2-tencent-conf

華爲雲

  • 打開華爲雲maven鏡像 mirrors.huaweicloud.com/ 乍一看界面很複雜,可是界面很友好,提供了多種檢索方式,能夠根據須要很方便的進行搜索,maven屬於語言類的咱們點擊語言類的進行查看,用卡片的形式對結果進行了渲染,鼠標上去還有高亮標記,能夠說很用心了

3-huawi-help

  • 點擊maven卡片會提示登陸、註冊、或者繼續使用,這裏特地強調了華爲鏡像使用了CDN加速,而且下載速度快一倍

3-huawi-cdn

  • 咱們點擊繼續使用,打開的界面也很直觀,提供了jdk下載、maven加速下載地址,maven、gradle能夠直接切換,而且詳細說明了如何進行替換,更加用心的是提供了一鍵下載能夠直接下載完整的配置文件,良心啊,每一步都替用戶着想,新手引導連接跳轉到了華爲論壇,更加詳細的指導,一鍵複製mirror地址進行配置
<mirror>
    <id>huaweicloud</id>
    <mirrorOf>*</mirrorOf>
    <url>https://mirrors.huaweicloud.com/repository/maven/</url>
</mirror>
複製代碼

3-huawi-detail

結論

華爲雲每一步都替用戶着想,詳細的配置說明羅勝一籌maven

下載速度

配置文件準備

示例程序使用以前多數據源配置的程序樣例,文末有下載方式工具

咱們使用華爲雲maven鏡像加速下載下來的配置文件爲模板,複製三份,mirror分別指定爲華爲雲、阿里雲、騰訊雲的地址,文件命名爲 settings_ali.xml settings_huawei.xml settings_tencent.xml測試

maven本地緩存路徑使用默認的地址 ${user.home}/.m2/repository ,每次構建以前須要清理本地緩存文件gradle

rm -rf /root/.m2/repository/*
複製代碼

咱們使用maven命令行窗口指定特定settings.xml的方式進行測試

maven命令以下ui

mvn clean package -Dmaven.test.skip=true -s settings_ali.xml
複製代碼

完整的腳本

這裏以華爲云爲例,腳本執行100次阿里雲

#!/bin/bash
echo '' > huawei
for ((i=1; i<=100; i ++))
do
    echo $i
    rm -rf /root/.m2/repository/*
    # start_mill=$((`date '+%s'`*1000+`date '+%N'`/1000000))
    mvn clean package -Dmaven.test.skip=true -s settings_huawei.xml >> huawei
    # end_mill=$((`date '+%s'`*1000+`date '+%N'`/1000000))
    # diff=$[10#$end_mill-10#$start_mill]
    #echo $diff >> huawei
done
grep 'Total time' huawei |awk 'BEGIN {max = 0} {if ($4>max) max=$4 fi} END {print "Max=", max}'
grep 'Total time' huawei |awk 'BEGIN {min = 6553565} {if ($4<min) min=$4 fi} END {print "Min=", min}'
grep 'Total time' huawei |awk '{sum+=$4}END{print "Average = ", sum/NR}'
複製代碼

使用到了awk進行統計url

結果統計

機器配置:騰訊雲1C2G1Mspa

結果然是出乎意料,計時單位都差了一個級別,華爲雲在秒級,其餘的則到了分鐘級

4-danwizhicha

華爲雲平均下載 20.09 s

5-huawei-info

騰訊雲平均下載 2 m

6-tengxun-info

阿里雲平均下載 1.23 m

7-ali-info

到這裏孰優孰劣一眼就能看出來了。

華爲,NB。

結論

用戶體驗: 華爲雲>騰訊雲>阿里雲 下載速度: 華爲雲>阿里雲>騰訊雲

用戶體驗無所謂了一次性配置,咱們確定首選下載速度最快的華爲雲了。

小技巧:使用nohup讓腳本後臺運行,nohup sh mvn-tencent.sh &

關注公衆號回覆 mvn 獲取完整測試代碼

一個程序猿的異常

關注公衆號回覆 mvn 獲取完整測試代碼

---END---

相關文章
相關標籤/搜索