阳光沙滩
让学习编程变得简单
Google's Maven Repository
发表于 2020-05-18    阅读次数 164

Google's Maven Repository

我找个时间扒下来吧

原地址:

需要使用google浏览器打开

Google's Maven Repository

扒过程

查看源码:

    /**
     * The prefix URL of GMaven.
     * @private @const {string}
     */
    var MAVEN_BASE_URL = 'https://dl.google.com/dl/android/maven2/';

关键代码:

MAVEN_BASE_URL + 'master-index.xml'

得到第一个路径:

https://dl.google.com/dl/android/maven2/master-index.xml

这样子,就下载到了

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <com.android.support.constraint/>
  <com.android.databinding/>
  <com.android.support/>
  <com.android.support.test/>
  <com.android.support.test.janktesthelper/>
  <com.android.support.test.uiautomator/>
  <com.android.support.test.espresso/>
  <android.arch.persistence.room/>
  <android.arch.lifecycle/>
  <android.arch.core/>
  <com.google.android.instantapps/>
  <com.google.android.instantapps.thirdpartycompat/>
  <com.android.java.tools.build/>
  <com.android.tools/>
  <com.android.tools.layoutlib/>
  <com.android.tools.ddms/>
  <com.android.tools.external.com-intellij/>
  <com.android.tools.build/>
  <com.android.tools.analytics-library/>
  <com.android.tools.internal.build.test/>
  <com.android.tools.lint/>
  <com.android.tools.external.org-jetbrains/>
  <com.android.support.test.espresso.idling/>
  <com.android.support.test.services/>
  <com.google.firebase/>
  <com.google.android.gms/>
  <com.google.gms/>
  <android.arch.paging/>
  <com.crashlytics.sdk.android/>
  <io.fabric.sdk.android/>
  <android.arch.persistence/>
  <com.google.android.wearable/>
  <com.google.android.support/>
  <com.android.installreferrer/>
  <com.google.ar/>
  <androidx.core/>
  <com.google.android.things/>
  <com.android.tools.build.jetifier/>
  <tools.base.build-system.debug/>
  <androidx.databinding/>
  <androidx.constraintlayout/>
  <org.chromium.net/>
  <com.google.android.play/>
  <androidx.multidex/>
  <com.google.android.material/>
  <androidx.test.services/>
  <androidx.test.janktesthelper/>
  <androidx.test/>
  <androidx.test.espresso/>
  <androidx.test.espresso.idling/>
  <androidx.test.uiautomator/>
  <androidx.room/>
  <androidx.paging/>
  <androidx.lifecycle/>
  <androidx.sqlite/>
  <androidx.arch.core/>
  <android.arch.work/>
  <android.arch.navigation/>
  <androidx.mediarouter/>
  <androidx.percentlayout/>
  <androidx.emoji/>
  <androidx.cardview/>
  <androidx.preference/>
  <androidx.wear/>
  <androidx.legacy/>
  <androidx.documentfile/>
  <androidx.car/>
  <androidx.swiperefreshlayout/>
  <androidx.leanback/>
  <androidx.appcompat/>
  <androidx.customview/>
  <androidx.gridlayout/>
  <androidx.vectordrawable/>
  <androidx.heifwriter/>
  <androidx.transition/>
  <androidx.print/>
  <androidx.viewpager/>
  <androidx.annotation/>
  <androidx.exifinterface/>
  <androidx.dynamicanimation/>
  <androidx.browser/>
  <androidx.localbroadcastmanager/>
  <androidx.asynclayoutinflater/>
  <androidx.contentpager/>
  <androidx.slidingpanelayout/>
  <androidx.cursoradapter/>
  <androidx.media/>
  <androidx.loader/>
  <androidx.interpolator/>
  <androidx.coordinatorlayout/>
  <androidx.fragment/>
  <androidx.tvprovider/>
  <androidx.slice/>
  <androidx.collection/>
  <androidx.recommendation/>
  <androidx.drawerlayout/>
  <androidx.recyclerview/>
  <androidx.webkit/>
  <androidx.palette/>
  <com.google.ar.sceneform/>
  <com.google.ar.sceneform.ux/>
  <androidx.test.ext/>
  <com.google.android.ads.consent/>
  <androidx.versionedparcelable/>
  <androidx.media2/>
  <com.google.ads.afsn/>
  <com.google.android.ads/>
  <androidx.biometric/>
  <androidx.concurrent/>
  <androidx.activity/>
  <com.android.tools.apkparser/>
  <com.android.tools.pixelprobe/>
  <androidx.textclassifier/>
  <androidx.remotecallback/>
  <com.android.tools.chunkio/>
  <com.android.tools.fakeadbserver/>
  <androidx.savedstate/>
  <com.google.android.libraries.places/>
  <androidx.viewpager2/>
  <androidx.navigation/>
  <androidx.work/>
  <androidx.sharetarget/>
  <androidx.enterprise/>
  <androidx.camera/>
  <androidx.benchmark/>
  <androidx.security/>
  <com.google.android.datatransport/>
  <zipflinger/>
  <androidx.autofill/>
  <androidx.ads/>
  <com.android/>
  <com.google.ads.interactivemedia.v3/>
  <androidx.ui/>
  <androidx.compose/>
  <com.google.androidbrowserhelper/>
  <org.jetbrains.kotlin/>
  <com.google.prefab/>
  <com.android.billingclient/>
  <com.android.ndk.thirdparty/>
  <com.google.oboe/>
  <androidx.window/>
  <com.google.test.platform/>
</metadata>

这样一个文件了

再看源码:

MAVEN_BASE_URL + groupId.replace(/\./g, '/') + '/group-index.xml';

groupId就是上面的内容了,去掉尖括号和斜杠以后,就可以获取到里面的内容。接着,把点替换成斜杠,比如说:

https://dl.google.com/dl/android/maven2/androidx/room/group-index.xml

这样子就扒到它的版本了

<?xml version="1.0" encoding="UTF-8"?>
<androidx.room>
  <room-rxjava2 versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-common versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-compiler versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-guava versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-migration versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-testing versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-runtime versions="2.0.0-alpha1,2.0.0-beta01,2.0.0-rc01,2.0.0,2.1.0-alpha01,2.1.0-alpha02,2.1.0-alpha03,2.1.0-alpha04,2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
  <room-coroutines versions="2.1.0-alpha03,2.1.0-alpha04"/>
  <room-ktx versions="2.1.0-alpha05,2.1.0-alpha06,2.1.0-alpha07,2.1.0-beta01,2.1.0-rc01,2.1.0,2.2.0-alpha01,2.2.0-alpha02,2.2.0-beta01,2.2.0-rc01,2.2.0,2.2.1,2.2.2,2.2.3,2.2.4,2.2.5"/>
</androidx.room>

于是乎,我就想写个程序,让其他浏览器同学也能查扯到。

写上此篇文章以记之。