本地 gradle 存储库镜像

Local gradle repository mirror

我需要在没有网络连接的电脑上构建 android 应用程序(或者只有本地网络没有外部访问)。

如何为 gradle 的二进制文件和应用程序依赖项创建本地存储库镜像?而是使用本地目录,但如果不可能,那么我可以在本地机器上使用一些人工服务 运行?

如果您可以使用连接构建一次Gradle 会将依赖项下载到它自己的缓存中(在Gradle 用户主目录下)。然后运行就变成了./gradlew --offline就进不去网络了

运行 Nexus 或 Artifcatory 存储库的本地安装是另一种选择。您可以在那里配置一个代理存储库,即使您没有网络连接,它也会再次为您缓存的工件提供服务。

需要解决两个问题:

  1. 正在下载 gradle

  2. 的二进制文件
  3. 正在从远程存储库下载工件。

通过更改 gradle/wrapper/gradle-wrapper.properties 文件解决的第一个问题:

distributionUrl=../../cache/gradle-2.2.1-all.zip

其中值是 gradle 二进制文件的本地副本的路径。

Sonatype Nexus 服务器解决了第二个问题。启动它并使用默认帐户登录:admin/admin123

在 Maven 中央存储库代理的设置中,更改缓存文件夹路径上的参数 Override Local Storage Location

在项目中,将 mavenCentral() 替换为下一个:

repositories {
    maven { url "http://localhost:8081/nexus/content/repositories/central/" }
}

建立你的项目。现在项目的所有部门都位于您的缓存文件夹中。

然后你可以在缓存文件夹的路径上替换 Maven url:

repositories {
    maven { url "file://" + project.getRootDir().absolutePath + "/cache" }
}

现在你可以在没有网络连接的情况下将缓存文件夹复制到电脑上,并且绝对离线构建项目