美文网首页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私服

    一、前言 “明明我挂了梯子,可gradle build还是卡住不动,过会儿就干脆error了”,小明如是说。And...

  • 2019-12-11

    gradle 发布jar或者aar到maven私服时pom文件缺少依赖 gradle使用maven publish...

  • 搭建Maven私服-Nexus

    Maven 私服,可以代理远程仓库和部署自己或第三方构件。本文介绍使用最广泛搭建 Maven 私服的工具: Son...

  • Jenkins持续集成(发送邮件)

    代码管理(git/SVN/CVS)->编译(maven/ant/gradle)->打包-部署 git /maven...

  • Android + Gradle + Maven 私服

    近期在推进项目工程的模块化及组件化,把一些公共的三方库和确定长期不做变动的垂直功能代码拆分为 modlule li...

  • Gradle上传Maven私服

    在module中添加maven插件,apply plugin:'maven' 添加上传任务uploadArchiv...

  • Maven私服搭建

    什么是maven私服? 工程中如何使用? 如何接入maven私服? 了解maven私服 分为本地和远程 远程包括:...

  • maven 命令行部署到nexus仓库

    maven 命令行部署到nexus仓库 1.在maven的配置文件conf.xml中添加私服配置 reposit...

  • Maven私服Nexus的搭建

    私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven...

  • Maven命令集锦

    Maven部署包到私服 命令 mvn deploy:deploy-file 参数(ps:xxx只是一个占位符,需要...

网友评论

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

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