我需要在没有网络连接的情况下在PC上构建android应用程序(或者只在没有外部访问权限的情况下使用本地网络)。
如何为gradle的二进制文件和应用程序依赖项创建本地存储库镜像?而是使用本地目录,但如果不可能,那么我可以使用在本地机器上运行的一些神器服务吗?
答案 0 :(得分:4)
如果可以使用连接构建一次,Gradle会将依赖项下载到自己的缓存中(在Gradle用户主目录下)。然后将其作为./gradlew --offline
运行,它将无法访问网络。
运行Nexus或Artifcatory存储库的本地安装是另一种选择。您可以在那里配置代理存储库,即使您没有网络连接也会再次为缓存的工件提供服务。
答案 1 :(得分:2)
需要解决两个问题:
下载gradle的二进制文件
从远程存储库下载工件。
更改gradle / wrapper / gradle-wrapper.properties文件解决了第一个问题:
distributionUrl=../../cache/gradle-2.2.1-all.zip
其中value是gradle binary的本地副本的路径。
使用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" }
}
现在您可以在没有网络连接的情况下将缓存文件夹复制到PC,并且绝对脱机构建项目