如何下载完整的Google Maven仓库以实现本地离线使用?
下载Google Maven仓库到本地离线使用的可行方法
你之前用wget爬的是仓库的Web展示页面,不是实际存储jar、aar、pom等资源的真实仓库地址。Google Maven仓库的实际资源托管地址是https://dl.google.com/dl/android/maven2/,以下是两种可行的下载方式:
方法一:用wget镜像完整仓库
使用以下命令可以完整爬取仓库的所有资源文件,同时保留正确的目录结构:
wget -m -np -nH --cut-dirs=2 -R "index.html*" https://dl.google.com/dl/android/maven2/
参数说明:
-m:开启镜像模式,递归下载并自动维护目录结构,适合完整镜像仓库-np:限制只爬取当前目录及子目录,不会向上访问无关路径-nH:避免生成以主机名为前缀的目录,本地目录结构和远程仓库完全一致--cut-dirs=2:移除URL中前两层目录(dl.google.com/dl/),直接从maven2开始构建本地目录-R "index.html*":排除所有网页索引文件,只保留实际的依赖资源
注意:整个Google Maven仓库体积超过50GB,确保本地有足够存储空间;网络不稳定的话,重新执行命令会自动跳过已下载的文件,无需从头开始。
方法二:用Maven按需同步指定依赖
如果不需要完整仓库,只想同步android.arch.core这类特定组的依赖,可以用Maven工具精准下载:
- 新建一个空文件夹,创建
pom.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>local.sync</groupId> <artifactId>google-repo-sync</artifactId> <version>1.0-SNAPSHOT</version> <repositories> <repository> <id>google</id> <url>https://dl.google.com/dl/android/maven2/</url> </repository> </repositories> </project>
- 在该文件夹下执行以下命令,同步
android.arch.core的所有版本资源:
mvn dependency:copy -DoutputDirectory=./local-google-repo -DgroupId=android.arch.core -DartifactId=* -Dversion=* -Dpackaging=jar -Dpackaging=aar
下载完成后,local-google-repo目录下会包含该组所有的jar、aar和pom文件。
内容的提问来源于stack exchange,提问作者Lookyus
相关产品推荐
相关产品推荐

