zoukankan      html  css  js  c++  java
  • Android Studio项目Gradle内网配置

    由于内网无法连接到外部网络,在使用Gradle编译Android Studio项目时就会面临一些问题:

    1.Gradle安装文件无法下载

    2.Gradle Android插件无法下载

    3.项目依赖文件无法下载

    苦心人天不负,通过摸索,找到了一些解决方法,与大家分享

    开发机器信息:

    操作系统:Windows

    服务器的信息:

    IP地址:192.68.121.130

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

    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:Usersxxx.gradlewrapperdists),然后再执行命令

    解决内网环境下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插件及依赖文件的问题

    
    
    
    
     
     
     
     
     
     
    
    
     
    
    
    
  • 相关阅读:
    Entity Framework 学习中级篇3—存储过程(中)
    Entity Framework 学习高级篇1—改善EF代码的方法(上)
    Entity Framework 学习中级篇2—存储过程(上)
    Entity Framework 学习初级篇7基本操作:增加、更新、删除、事务
    Entity Framework 学习中级篇4—存储过程(下)
    Entity Framework 学习初级篇5ObjectQuery查询及方法
    LINQ之路 9:LINQ to SQL 和 Entity Framework(上)
    在List创建的时候自动加上Rating功能
    利用Feature receiver自动注册/卸载Http Module
    使用SharePoint Web Service(1):创建子站点
  • 原文地址:https://www.cnblogs.com/rainboy2010/p/9060903.html
Copyright © 2011-2022 走看看