在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.gradle使用了以下依赖:
dependencies { compile ‘de.hdodenhof:circleimageview:2.1.0‘ }
下载的地址为:https://jcenter.bintray.com/de/hdodenhof/circleimageview/2.1.0/
本地缓存地址为:C:\Users\xxx(用户名)\.gradle\caches\modules-2\files-2.1\de.hdodenhof\circleimageview\2.1.0
这三个目录依次存放文件circleimageview-2.1.0.pom,circleimageview-2.1.0.aar,circleimageview-2.1.0-sources.jar
如果没有网络或我们设置Gradle为offline模式时,Gradle就会使用这些缓存文件,不再连接jcenter去获取这些依赖包
很多公司的办公网络,考虑到安全,保密等因素,是不允许连接到外网或无法访问到jcenter,那么这时候如何在内网使用Gradle构建Android程序呢?这是个棘手的问题啊,难道让我放弃心爱的butterknife,RxJava...?难道让我复制一堆jar包到libs目录下?
聪明的程序员显然是不会这么做的,研究了一下,发现在内网环境下,我们依然可以很愉快的使用Gradle构建Android项目
此处假设外网电脑A,内网电脑B,如我们需要在项目中使用circleimageview,那么将A中缓存的circleimageview类库复制到B中Android SDK extras目录下对应的目录即可,
即将A中缓存的circleimageview-2.1.0.pom,circleimageview-2.1.0.aar,circleimageview-2.1.0-sources.jar文件复制到B中xxx(android sdk目录)\extras\m2repository\de\hdodenhof\circleimageview\2.1.0目录下
如果我们在项目中使用了butterknife,如下:
dependencies { compile ‘com.jakewharton:butterknife:8.4.0‘ annotationProcessor ‘com.jakewharton:butterknife-compiler:8.4.0‘ }
那么我们在内网中如何使用butterknife呢?由于butterknife项目引用了javapoet,auto-common,auto-service类库,我们也需要把这些类库放到extras目录下