美文网首页Android开发GradleGradle for Android
彻底解决Gradle速度慢,VPS上部署maven私服

彻底解决Gradle速度慢,VPS上部署maven私服

作者: GitOPEN | 来源:发表于2018-04-01 22:51 被阅读71次

    一、前言

    “明明我挂了梯子,可gradle build还是卡住不动,过会儿就干脆error了”,小明如是说。Android Studio的gradle下载依赖过慢是广大Android程序员的痛点。于是有很多公司都构建了内网的Nexus Repository Manager OSS私服,来解决痛点,缩短该司程序员等待的闲暇时间,提高压榨的效率。但是,对于各位码神来说,离开公司还是要做独立项目的,于是痛点又回来。将maven部署在自己的VPS,彻底解决gradle各种慢,供自己享用,随时随地无痛码起来,不枉码神的名号。

    二、其实过程很简单

    1. 首先,有自己的vps,最好在境外,哦不,是必须在境外(没有篱笆的地方),例如,万恶的米国🇺🇸。我的vps用的是vultr,相信各位都有所耳闻,于是,我恬不知耻地邀请你点击我的连接注册购买,这样,你可以得到10💵的优惠。相信我,如果你能在vultr上开到144开头的ip,速度和稳定性一定不会让你失望

    2. 其次,就是安装过程,听我娓娓道来。如果你是新手,请自行Google一下如何用ssh连接到VPS,然后继续。

    3. 配置jdk环境:

      • 下载jdk
      wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
      
      • 解压jdk
      tar -zxvf jdk-8u162-linux-x64.tar.gz
      
      • 创建/usr/local/java文件夹
      mkdir -p /usr/local/java
      
      • 移动jdk到创建的文件夹
      mv jdk1.8.0_162 /usr/local/java
      
      • 设置环境变量,vim /etc/profile填入以下内容
      JAVA_HOME=/usr/local/java/jdk1.8.0_162
      JRE_HOME=/usr/local/java/jdk1.8.0_162/jre
      CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
      PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
      export JAVA_HOME JRE_HOME CLASS_PATH PATH
      
      • 生效环境变量
      source /etc/profile
      

    4. 安装Nexus Repository Manager OSS

      • 下载 Nexus Repository Manager OSS
      wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/oss/nexus-2.14.8-01-bundle.tar.gz
      
      • 解压nexus
      wget nexus-2.14.8-01-bundle.tar.gz
      
      • 创建/usr/local/nexus文件夹
      mkdir -p /usr/local/nexus
      
      • 移动nexus到创建的文件夹
      mv nexus-2.14.8-01 /usr/local/nexus
      
      • 修改配置,先cd /usr/local/nexus/nexus-2.14.8-01,然后vim bin/nexus,在NEXUS_HOME=".."上面一行,加入以下内容
      RUN_AS_USER=root
      
      • 启动nexus
      ./bin/nexus start
      
      • 访问nexus,默认登录账户名admin,默认密码admin123xxx.xxx.xxx.xxx是vps的ip地址
      http://xxx.xxx.xxx.xxx:8081/nexus/
      

    5. 设置Nexus Repository Manager OSS

      • 登录后的界面预览,进入用户管理


        nexus-1.jpg
      • 重新设置admin密码

    nexus-2.jpg
    • 禁用匿名账户,防止全网可用,节省vps流量和空间
    nexus-3.jpg
    • 同样的方法,禁用development账户,或者修改密码
    • 进入Repositories,这是我新建的三个proxy repositories,设置方法往后看
    nexus-4.jpg
    • 点击Add...,选择Proxy Repositories,按照图中的信息设置googlerepositories
    nexus-5.jpg
    nexus-6.jpg
    • 同样的方法,新建和设置Jcenterjitpack
    nexus-7.jpg
    nexus-8.jpg
    • 新建一个Repositories Group ,并设置信息,如图所示
    nexus-9.jpg
    nexus-10.jpg
    • 到这里,设置就完毕了。
    1. 在Android Studio中使用的时候,maven url地址为

      http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/
      
      • 具体使用,在项目根目录下的build.gradle中添加maven url,格式如下
       maven {
                  url 'http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/'
                  credentials {
                      username 'admin'
                      password 'admin123'
                  }
      
      • 整个build.gradle看起来是这个样子
      // Top-level build file where you can add configuration options common to all sub-projects/modules.
      
      buildscript {
          repositories {
              maven {
                  url 'http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/'
                  credentials {
                      // 此处为nexus users中设置的有权限的账户,例如你的admin账户和密码
                      // 修改为自己的账户和密码
                      username 'admin'
                      password 'admin123'
                  }
              }
      //       google()
      //       jcenter()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:3.1.0'
          }
      }
      
      allprojects {
          repositories {
              maven {
                  url 'http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/'
                  credentials {
                      username 'admin'
                      password 'admin123'
                  }
              }
      //        google()
      //        jcenter()
          }
      }
      
      task clean(type: Delete) {
          delete rootProject.buildDir
      }
      
      
      • 现在,我们就解决掉痛点了。gradle在构建的时候,我们的nexus私服中没有的依赖,将由私服自动到仓库中去拉取,并保存到私服中,于是,我们的gradle下载依赖再也不会被蔷了,相当于给gradle部署了一个跳板。

    三、再次邀请您

    在总结了长期使用VPS的经验后,我向您隆重推荐两家VPS服务商,vultr和Digital Ocean。这两家的服务非常友好,用我的连接注册并购买,可以得到💲10的免费使用额度。

    使用经验:vultr建议,多开几个,截止本稿发布为止,144段非常稳定流畅;DO家的建议用sfo或者new york,速度和稳定性很好。观看油管可4k,下载油管可跑满带宽,我100MB联通,能下载8MB/s。

    优惠链接:

    Digital Ocean优惠链接

    vultr优惠10美元链接

    如果你在购买后,有问题需要我帮忙,私信我,看到即回。

    相关文章

      网友评论

      本文标题:彻底解决Gradle速度慢,VPS上部署maven私服

      本文链接:https://www.haomeiwen.com/subject/nmczcftx.html