Android Studio项目Gradle内网配置

因为内网没法链接到外部网络,在使用Gradle编译Android Studio项目时就会面临一些问题:java

1.Gradle安装文件没法下载android

2.Gradle Android插件没法下载web

3.项目依赖文件没法下载apache

苦心人天不负,经过摸索,找到了一些解决方法,与你们分享浏览器

开发机器信息:缓存

操做系统:Windowstomcat

服务器的信息:服务器

IP地址:192.68.121.130网络

操做系统: SUSE Linux Enterprise Server 11 SP4 (x86_64)app

Java版本: 1.8.0_144

Tomcat版本: 7.0.70

Gradle安装文件存放目录为:/home/jack/Desktop/jack/software/gradle

Android APP信息:

Gradle Android插件版本:2.3.3

Gradle Wrapper版本:3.3

依赖文件:

junit:4.12

butterknife:8.4.0

打包命令:gradlew build

解决内网环境下Gradle安装文件没法下载的问题

1. 在服务器上安装Tomcat

1.1 从Tomcat网站下载Tomcat 7.0.70,地址:
https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.tar.gz
1.2 解压Tomcat,执行如下命令
 tar zxvf apache-tomcat-7.0.70.tar.gz
 如解压后Tomcat对应的目录为:
 /home/jack/Desktop/jack/software/apache-tomcat-7.0.70
1.3 设置环境变量TOMCAT_HOME为:
  /home/jack/Desktop/jack/software/apache-tomcat-7.0.70
1.4 启动Tomcat,执行如下命令:
  cd $TOMCAT_HOME
  sh bin/startup.sh

2. 创建软连接:

   cd $TOMCAT_HOME/webapps
   ln -s /home/jack/Desktop/jack/software/gradle gradle

3. 将gradle-3.3-all.zip上传到服务器/home/jack/Desktop/jack/software/gradle目录下

此时访问 http://192.168.121.130:8080/gradle/gradle-3.3-all.zip,如能够下载文件,则配置成功

4. 替换项目中gradle-wrapper.properties文件的distributionUrl

 

5. 在项目根目录下执行gradlew –v,若是本地没有缓存3.3版本则先会从服务器下载gradle-3.3-all.zip并缓存到本地(默认本地缓存目录为C:\Users\xxx\.gradle\wrapper\dists),而后再执行命令

解决内网环境下Gradle Android插件没法下载的问题

 1.在服务器上使用Nexus架设Maven私服

    1.1 下载Nexus,地址:https://www.sonatype.com/download-oss-sonatype

         本人使用的是Nexus版本为Nexus Repository Manager OSS 2.14.4-03,使用的安装文件为nexus-2.14.4-03-bundle.tar.gz

    1.2 解压Nexus

         tar zxvf nexus-2.14.4-03-bundle.tar.gz

         如解压后Nexus对应的目录为:

         /home/jack/Desktop/jack/software/nexus

      

   1.3 启动nexus

      cd /home/jack/Desktop/jack/software/nexus

      cd nexus-2.14.4-03/bin

      ./nexus start

  1.4 此时在浏览器中输入地址http://192.168.121.130:8081/nexus,若是能打开页面,则nexus配置成功了

 

  Nexus启动默认的端口为8081,能够经过修改nexus-2.14.4-03/conf/ nexus.properties文件改变端口,上下文等信息

 

   1.5 登陆nexus,点击右上角的Log In进行登陆,默认的管理员用户名密码为admin/admin123

   1.6 上传Gradle Android插件到Maven私服,此处以上传Gradle Android Plugin 2.3.3版本到3rd party为例


因为gradle插件有不少依赖,层层依赖,所以此处需上传不少jar包,部分目录结构以下:

1.7 修改项目根目录build.gradle的buildscript节点,指定使用Maven私服地址下载插件,以下:

buildscript { repositories { maven { url "http://192.168.121.130:8081/nexus/content/groups/public" } } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } }

解决内网环境下项目依赖文件没法下载的问题

   1 将junit相关文件上传到Maven私服,须要上传的信息以下:

        junit:junit:4.12

       org.hamcrest: hamcrest-core:1.3

       org.hamcrest: hamcrest-integration:1.3

      org.hamcrest: hamcrest-library:1.3

      org.hamcrest: hamcrest-parent:1.3

  2 将bufferknife相关文件上传到Maven私服,须要上传的信息以下:

    com.jakewharton: butterknife:8.4.0

   com.jakewharton: butterknife-annotations: 8.4.0

   com.jakewharton: butterknife-compiler: 8.4.0

   com.google.auto.service: auto-service: 1.0-rc2

   com.squareup:javapoet:1.7.0

   com.google.auto:auto-common:0.6

   com.google.auto:auto-parent:2

   com.google.auto:auto-parent:3

3 修改项目根目录的build.gradle,修改节点allprojects,指定使用Maven私服地址下载依赖项,以下:

allprojects { repositories { maven { url "http://192.168.121.130:8081/nexus/content/groups/public" } } }

最后项目根目录的build.gradle以下:

buildscript { repositories { maven { url "http://192.168.121.130:8081/nexus/content/groups/public" } } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } } allprojects { repositories { maven { url "http://192.168.121.130:8081/nexus/content/groups/public" } } } task clean(type: Delete) { delete rootProject.buildDir }

 咱们能够经过定义扩展属性ext简化build.gradle,简化后的build.gradle文件以下:

buildscript { ext.maven_url = "http://192.168.121.130:8081/nexus/content/groups/public" ext.android_plugin_version = "2.3.3" repositories { maven { url "$maven_url" } } dependencies { classpath "com.android.tools.build:gradle:$android_plugin_version" } } allprojects { repositories { maven { url "$maven_url" } } } task clean(type: Delete) { delete rootProject.buildDir }

 大功告成,至此问题所有解决,输入gradlew build命令愉快编译吧。

总结:

1.使用Tomcat解决内网没法下载Gradle安装文件的问题

2.使用Maven私服解决内网没法下载Gradle Android插件及依赖文件的问题

相关文章
相关标签/搜索