永恒的码流

万物皆流,无物常驻

0%

Gradle下载公司内部依赖失败问题排查

问题描述

最近的一个项目使用了公司自己的Maven库中的依赖,这个Maven库只能用公司内网访问。开始我设置了代理,sync后,有部分依赖不能下载,有时候sync依然会成功,但build一定会失败,执行./gradlew build --stacktrack,获得错误信息如下:

1
Could not resolve xxxxx.xxx.xxx.xxx. 

只是公司自己的Maven库依赖不能解析,其他三方库依赖没有报错。

问题排查

排查思路如下:

一,确定公司内部Maven库能够从自己的电脑上访问

  1. 是否能够ping通?

    $ ping xxx.xxx.xxx(公司内部Maven库服务地址)

  2. 能够ping通后,再用浏览器尝试访问公司内部Maven库,看能够找到需要的依赖。

确定公司内部Maven库能够被访问后,再看下一步

二,确定自己的Gradle没有设置外部代理

如果设置了外部代理,则是从外部网络访问公司内部Maven,肯定是访问不了的。依次检查如下:

  1. 项目根目录下的gradle.properties是否设置了代理。

  2. Android Studio是否设置了代理。”Preference -> Appearence&Behavior -> System Settings -> HTTP Proxy”

  3. 用户主目录~/.gradle/gradle.properties中是否设置了全局代理。

如果设置了代理,则关闭所有的代理或者设置内部Maven库地址不走代理,而其他的走代理。

内部Maven库地址不走代理设置

gradle.properties设置如下:

1
systemProp.http.nonProxyHosts=xxxx.xxxx.xxxx 

Android Studio设置如下:

在”Preference -> Appearence&Behavior -> System Settings -> HTTP Proxy”中的”No proxy for”中填入公司内部Host主机地址。