前言
“明明我挂了梯子,可gradle build还是卡住不动,过会儿就干脆error了”,小明如是说。Android Studio的gradle下载依赖过慢是广大Android程序员的痛点
。于是有很多公司都构建了内网的Nexus Repository Manager OSS
私服,来解决痛点
,缩短该司程序员等待的闲暇时间,提高压榨的效率。但是,对于各位码神来说,离开公司还是要做独立项目的,于是痛点
又回来。将maven部署在自己的VPS,彻底解决gradle各种慢,供自己享用,随时随地无痛码起来,不枉码神的名号。
其实过程很简单
首先,有自己的vps,最好在境外,哦不,是必须在境外(没有篱笆的地方),例如,万恶的米国🇺🇸。我的vps用的是vultr,相信各位都有所耳闻,于是,我恬不知耻地邀请你点击我的连接注册购买,这样,你可以得到10💵的优惠。相信我,如果你能在vultr上开到
144
开头的ip,速度和稳定性一定不会让你失望。其次,就是安装过程,听我娓娓道来。如果你是新手,请自行Google一下
如何用ssh连接到VPS
,然后继续。配置jdk环境:
下载jdk
1
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
1
tar -zxvf jdk-8u162-linux-x64.tar.gz
创建
/usr/local/java
文件夹1
mkdir -p /usr/local/java
移动jdk到创建的文件夹
1
mv jdk1.8.0_162 /usr/local/java
设置环境变量,
vim /etc/profile
填入以下内容1
2
3
4
5JAVA_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生效环境变量
1
source /etc/profile
安装
Nexus Repository Manager OSS
下载 Nexus Repository Manager OSS
1
wget https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/oss/nexus-2.14.8-01-bundle.tar.gz
解压nexus
1
wget nexus-2.14.8-01-bundle.tar.gz
创建
/usr/local/nexus
文件夹1
mkdir -p /usr/local/nexus
移动nexus到创建的文件夹
1
mv nexus-2.14.8-01 /usr/local/nexus
修改配置,先
cd /usr/local/nexus/nexus-2.14.8-01
,然后vim bin/nexus
,在NEXUS_HOME=".."
上面一行,加入以下内容1
RUN_AS_USER=root
启动nexus
1
./bin/nexus start
访问nexus,默认登录账户名
admin
,默认密码admin123
。xxx.xxx.xxx.xxx
是vps的ip地址1
http://xxx.xxx.xxx.xxx:8081/nexus/
设置
Nexus Repository Manager OSS
登录后的界面预览,进入用户管理
重新设置admin密码
禁用
匿名账户
,防止全网可用,节省vps流量和空间同样的方法,禁用
development
账户,或者修改密码
进入Repositories
,这是我新建的三个proxy repositories
,设置方法往后看点击
Add...
,选择Proxy Repositories
,按照图中的信息设置google
repositories同样的方法,新建和设置
Jcenter
和jitpack
新建一个
Repositories Group
,并设置信息,如图所示到这里,设置就完毕了。
在Android Studio中使用的时候,
maven url
地址为1
http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/
具体使用,在项目根目录下的
build.gradle
中添加maven url,格式如下1
2
3
4
5
6maven {
url 'http://xxx.xxx.xxx.xxx:8081/nexus/content/groups/private/'
credentials {
username 'admin'
password 'admin123'
}整个
build.gradle
看起来是这个样子1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38// 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。
优惠链接: