问题描述
最近的一个项目使用了公司自己的Maven库中的依赖,这个Maven库只能用公司内网访问。开始我设置了代理,sync
后,有部分依赖不能下载,有时候sync
依然会成功,但build
一定会失败,执行./gradlew build --stacktrack
,获得错误信息如下:
1 | Could not resolve xxxxx.xxx.xxx.xxx. |
只是公司自己的Maven库依赖不能解析,其他三方库依赖没有报错。
问题排查
排查思路如下:
一,确定公司内部Maven库能够从自己的电脑上访问
是否能够
ping
通?$ ping xxx.xxx.xxx(公司内部Maven库服务地址)
。能够
ping
通后,再用浏览器尝试访问公司内部Maven库,看能够找到需要的依赖。
确定公司内部Maven库能够被访问后,再看下一步
二,确定自己的Gradle没有设置外部代理
如果设置了外部代理,则是从外部网络访问公司内部Maven,肯定是访问不了的。依次检查如下:
项目根目录下的
gradle.properties
是否设置了代理。Android Studio是否设置了代理。”Preference -> Appearence&Behavior -> System Settings -> HTTP Proxy”
用户主目录
~/.gradle/gradle.properties
中是否设置了全局代理。
如果设置了代理,则关闭所有的代理或者设置内部Maven库地址不走代理,而其他的走代理。
内部Maven库地址不走代理设置
gradle.properties
设置如下:
1 | xxxx.xxxx.xxxx = |
Android Studio设置如下:
在”Preference -> Appearence&Behavior -> System Settings -> HTTP Proxy”中的”No proxy for”中填入公司内部Host主机地址。