AndroidStudio加速之--(一)构件仓库Artifactory

相关文章:
AndroidStudio加速之–构件仓库Artifactory【本文】
AndroidStudio加速之–巧用Project Template

一、前言

想必大家使用AS的时候都会遇到过下载gradle过慢,或者其他依赖仓库访问也会过慢的问题,导致第一次运行项目总要或多或少的等待几个些许的时间。后来遇到了Nexus,好用是好用,可是界面实在不敢恭维,太丑了【不好意思我对UI可能要求高了】,导致懒得用。最近被人安利了另一款相同功能,甚至更强大的仓库管理工具Artifactory,我去官网一看,行啊,UI不错,那就搞起来吧。
然后网上搜了一圈发现都是旧版本的一些教程,而且设置等位置也都跟新版相比有了一定的不同,目前官方最新的是7.3.2版本的,我就使用最新版本在本地电脑(运维人员可以直接搭建到公司内网)上搭建一下,记录一下自己走过的弯路。

再多提一句,虽然这个东西公司有运维人员的话会帮我们搞定,但是我们自己做一遍,知道个所以然不是更好么,生命在于折腾。

二、Artifactory使用流程

2.1、下载

ArtiFactory的中文网址,可以看到官网上有免费试用的功能,我们就先用这个试用版本来进行讲解【当然你可以拉到屏幕底部选择开源版本的进行尝试】。
点击免费试用后,会让你填写一些基本信息例如邮箱等(最好不要QQ邮箱,验证不通过,可以选择gmail等),邮箱验证通过后会给你发送一封邮件,里面包含了下载地址以及JFrog Platform License Key,这个Key我们下文会使用到的,如下所示:
在这里插入图片描述
然后点击链接去下载即可,我下载的是jfrog-artifactory-pro-7.3.2-windows.zip win版本的。下载完毕后直接解压到本地磁盘的非中文目录下即可,例如我这里是E:\Repo\artifactory-pro-7.3.2

2.2、启动服务

打开上文artifactory文件夹,进入app/bin目录下,然后双击artifactory.bat即可,然后会弹出dos窗口,显示 Starting all services,这一步可能需要耗时很久(可能由于我的笔记本老旧的缘故,这里耗费很久的时间,甚至我关掉dos窗口重新执行了一遍),此时你在浏览器中输入http://localhost:8081/artifactory/,然后一定要耐心等待,刚开始服务没启动起来的时候可能无法显示此网页,但是等服务慢慢启动起来的话你刷新后就可以看到如下的loading动画了。
在这里插入图片描述

2.3、登录

当你的服务完全启动起来后就显示登录页面了,此时默认登录的账号为admin,密码为password。成功登录后会弹出来一些设置选项我们直接跳过所有设置,然后会显示让你输入License Key的选项了,此时将我们邮件中收到的Key粘贴进去即可。

2.4、配置仓库

首先有三种仓库,如下所示:
在这里插入图片描述
第一种本地仓库Local,这个仓库中可以上传一些我们自己开发的插件以及gradle-x.x.x-all.zip文件,这样免去每次去下载gradle文件的麻烦了。
第二种是远程仓库Remote,比如我们在工程的gradle文件中使用的jcenter,google,maven等仓库,我们在这里可以统一使用阿里云的仓库代理。
第三种是虚拟仓库Virtual,在这里我们可以将前两者全部进行组合代理。也就是说我们原来在gradle中分别依赖的各种仓库

    repositories {
        google()
        jcenter()
        ...
    }

现在只需要依赖这么一个虚拟仓库就可以了,下文细讲。

    repositories {
        maven { url 'http://localhost:8082/artifactory/virtual/' }
    }

接下来我们分别尝试创建下这些仓库:

2.4.1、本地仓库

首先我们在本地仓库中创建,如下所示:
在这里插入图片描述
点击右侧加号创建新的本地仓库后,会弹出选项让你选择仓库类型,这里我们选择maven仓库即可:
在这里插入图片描述
然后还必须填写一个Repository Key,这里我们随意填写local即可。
然后我们需要给我们这个本地仓库上传一些需要的文件上去,对的,gradle文件必须给它扔进去,不然每次去官网下真的是慢的一批。

但是但是:
在部署之前我们需要调整下设置,因为默认的上传文件大小是不能大于100M,可是我们的gradle压缩包肯定超过了。打开Administration->Artifactory:
在这里插入图片描述
在右侧的General中点击Setting,然后设置如下(只要大小超过gradle文件的大小即可,gradle5.6.4版本的是134M),我这里就设置了200M:
在这里插入图片描述
设置好后我们按照下图所示,一步步打开相应的菜单:
在这里插入图片描述
在左侧的菜单中一次选择Artifactory->Artifacts然后在右侧面板中选择刚刚我们新建的local仓库,然后点击右上角的Deploy进行部署。
点击后会弹出如下所示弹窗,选择目标仓库是刚刚创建的local,然后下面选择gradle文件。这里的gradle文件是指那些gradle-x.x.x-all.zip文件,例如gradle-5.6.4-all.zip的远程地址是:https://services.gradle.org/distributions/gradle-5.6.4-all.zip,在AS的gradle/wrapper文件夹下可以看到有这个属性文件。我们将下载好的压缩包直接上传到这个仓库即可。
在这里插入图片描述
上传完后就可以看到这个gradle文件了,如图所示,注意右侧的gradle地址,下文AndroidStudio中需要用到:
本地仓库中的gradle
然后本地的仓库到这里已经创建好了。

2.4.2、远程仓库

远程仓库配置起来超级简单,因为我们把对应的仓库指向阿里云的源就好了,阿里云提供的仓库服务地址为 https://maven.aliyun.com/mvn/view。可以看到里面代理了有jcenter以及goole的仓库。
首先选择Remote Tab,然后一样的创建新仓库,然后选择maven类型,然后就是配置我们工程里面用的google和jcenter两个仓库,你用到了那些记得就配置哪些,可多配不可少配。google仓库的远程代理如下所示:
在这里插入图片描述
其他远程代理仓库同理。

2.4.3、虚拟仓库

好了现在进入主角了,因为我们上面已经有两个仓库了,分别再配到AS里面也是麻烦。所以artifactory也是贴心的给了个组合的选项,也就是虚拟仓库,我们可以在这里将之前的Local和Remote仓库统一导入这里。
点击Vertical Tab,然后同样一样的创建新仓库,选择maven类型,然后填写Repository Key,比如我这里是virtual。然后重点来了,往下滚动网页,如下图所示,在Repositories中将我们之前创建的本地仓库local以及两个远程仓库google和jcenter添加到右侧(打码的地方是我测试使用的,以免大家混淆),然后点击右下角save,大功告成:
在这里插入图片描述

2.5、其他设置

  • 上传文件大小更改,这一步在2.4.1中进行了说明
  • 需要允许匿名访问,否则AS构建的时候会提示401错误,如下图所示:
    在这里插入图片描述

三、AndroidStudio配置

当仓库全部配置完成后,此时我们将AS的依赖也重新进行配置:

3.1、gradle-wrapper.properties文件

该文件位于项目的 gradle/wrapper 目录下,打开该文件将gradle地址修改为我们的本地仓库中的gradle地址:

#Sun Mar 01 12:18:28 CST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=http\://localhost:8082/artifactory/local/gradle-5.6.4-all.zip

我们将services.gradle.org网址的gradle文件配置成了本地仓库中的文件,这样只要本地仓库有文件的,新工程用起来妥妥的飞快。

3.2、项目的build.gradle文件

将buildscript和allprojects节点下的repositories进行修改,从其他的远程依赖,全部依赖成我们本地的虚拟仓库。

    repositories {
//        google()
//        jcenter()
//        ...这些都不要了,全部用下面本地的
        maven { url 'http://localhost:8082/artifactory/virtual/' }
    }

AS的配置完毕后此时构建项目,可以看到在artifactory中会下载各种构件了,如下所示,这样当局域网中的其他小伙伴需要的时候可以直接局域网的artifactory中下载了,速度不是一般的快。
在这里插入图片描述

四、总结

我们通过上文我们通过在本机上进行Artifactory的搭建和使用演示,相信大家知道这个东西的重要作用了。真的用在公司内网中的话是对每个开发人员的福利,只要一个人下载了所需的构件其他的人再使用的时候,飞速的就可以从内网上下载下来。简直就是“一人得道,鸡犬升天”有没有,哈哈哈,完美。

结束了么,我还得再添加几句,我们上文已经都处理好了,但是每次一新建工程还是要仓库地址和Gradle地址再手动更改一遍,是不是很不人性化,有没有办法新建工程的时候直接把这两个地方更改掉呢,有!答案请看下文:
AndroidStudio加速之–巧用Project Template

最后说下,我最近写的一些文章知识点基本快串联起来了。下面是相关的文章:
AndroidStudio加速之–(一)构件仓库Artifactory
Android NDK、JNI之–(四)so打包发布aar
AndroidStudio加速之–(三)发布aar到Artifactory
Android 编译插桩之–自定义Gradle插件

发布了46 篇原创文章 · 获赞 56 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u010976213/article/details/105453791