博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Maven学习】Nexus私服代理其他第三方的Maven仓库
阅读量:5822 次
发布时间:2019-06-18

本文共 1814 字,大约阅读时间需要 6 分钟。

一、背景

通过前面的两篇博客,我们已经将Nexus搭建好并且迁移到了新的机房,现在我发现我们之前的Nexus私服服务器居然没有对第三方经常使用的JCenter等没有做代理。好吧,那么我来讲我们android开发中遇到的常见第三方的Maven仓库都做好代理,加入进来。

这里写图片描述

通过代理,我们可以将代理的远程的Maven仓库中的一些资料下载到我们的Nexus私服务器上,然后平时我们的项目开发就是直接访问局域网内的私服即可。这样做的好处有两个:

  • 既节省了网络带宽也会加速项目搭建的进程
  • 防止第三方Maven仓库突然无法访问导致项目无法编译的情况。比如JCenter前段时间就无法访问,导致项目无法编译,只能找到国内的其他镜像地址才能够进行编译。

二、添加Proxy Repository

目前我们的Nexus服务器上的仓库如下所示:

这里写图片描述

现在我们来添加JCenter的Proxy,使用管理员账户登录后台之后,点击Add按钮

这里写图片描述

然后选择类型为【Proxy Respository】

这里写图片描述

然后会生成一个新的Proxy Respository,如下图所示

这里写图片描述

我们需要填好 【Respository ID】、【Respository Name】、【Remote Storage Location】等配置

这里写图片描述

如上图所示,【Respository ID】我们设置为JCenter、【Respository Name】我们设置为JCenter、【Remote Storage Location】我们设置为,然后保存。

这样我们就可以在 Repository列表中看到JCenter这个 Repository了,如下图所示:

这里写图片描述

同样的方式,我们可以将jitpack也加入进来,配置如下图

这里写图片描述

三、将Proxy Repository 添加到Repository Group中

Nexus 中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样的,我只管根据 groupId,artifactId,version等信息向你要构件。

为了方便Maven的配置,Nexus能够将多个仓库,hosted或者 proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。

我们内部早已经创建好了一个Repository Group,名为android public,如下图所示:

这里写图片描述

可以看到我们这个组中管理的Repository有很多,刚刚新建号的JCenter和jitpack并不属于这个组,因此我们选中之后,将JCenter和jitpack移动到这个组的管理中。

这里写图片描述

加入好之后,如下图所示

这里写图片描述

这样我们以后想要使用JCenter和jitpack中的库资源的话,直接使用android public这个Repository Group即可。

PS:最近我们又将google()和mavenCentral()的代理也都加入进来了,如下图所示:

这里写图片描述

  • google() :
  • mavenCentral() :
  • jcenter() :
  • jitpack:

四、Android Studio 项目中简化Maven的配置

之前我们在项目的build.gradle文件中,配置了很多的Maven库,如下所示

这里写图片描述

除了我们自己的 android_pubilic 之外,还有 jcenter、jitpack等maven仓库。现在我们只需要配置一条即可,如下图所示:

这里写图片描述

这里写图片描述

修改完代码之后,重新编译。

这里写图片描述

从编译的输出日志我们可以看得出来,下载很多从jcenter上的第三方AAR,现在都是从我们配置好的Proxy服务器上下载了。

编译完毕之后,我们查看Nexus服务器上的JCenter的【Browse Storage】,可以发现我们刚才编译所需要的资源,都已经下载到了我们的Proxy代理服务器上。以后我们再使用相同的资源的话,直接从Proxy服务器下载,速度会快很多。

这里写图片描述

参考链接


这里写图片描述

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!

转载请保留原文地址:
本文同步发表在阿里云栖:

如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作!

这里写图片描述

转载于:https://www.cnblogs.com/ouyangpeng/p/8537622.html

你可能感兴趣的文章
用DirectX实现动态纹理
查看>>
在Struts2中使用ValueStack、ActionContext、ServletContext、request、session等 .
查看>>
[转载]版本号定义
查看>>
android fastboot flash system 失败
查看>>
Hibernate的ORM原理和实现
查看>>
如何在linux系统下配置无线网卡?【转】
查看>>
web桌面程序之图标拖动排序的分析
查看>>
老贴 java数据库连接
查看>>
Image-Loader LruMemoryCache
查看>>
使用Oracle数据库进行企业开发(一)
查看>>
经纬度和墨卡托互相转换
查看>>
VC无闪烁刷屏技术的实现【转】
查看>>
【原】IOS中KVO模式的解析与应用
查看>>
EntityFramework Core迁移时出现数据库已存在对象问题解决方案
查看>>
urb传输的代码分析【转】
查看>>
理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称
查看>>
一道算法题的一种O(n)解法
查看>>
ABP理论学习之NHibernate集成
查看>>
反射之动态创建对象
查看>>
隐马尔可夫模型学习小记——forward算法+viterbi算法+forward-backward算法(Baum-welch算法)...
查看>>