【Maven学习】Nexus私服代理其他第三方的Maven仓库
一、背景
【Maven学习】Nexus OSS私服仓库的安装和配置
http://blog.csdn.net/ouyang_peng/article/details/78793038【Maven学习】Nexus OSS私服仓库的备份与迁移
http://blog.csdn.net/ouyang_peng/article/details/78796215
通过前面的两篇博客,我们已经将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】我们设置为http://jcenter.bintray.com/,然后保存。
这样我们就可以在 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() : https://dl.google.com/dl/android/maven2/
- mavenCentral() : https://repo1.maven.org/maven2/
- jcenter() : http://jcenter.bintray.com/
- jitpack: https://jitpack.io/
四、Android Studio 项目中简化Maven的配置
之前我们在项目的build.gradle文件中,配置了很多的Maven库,如下所示
除了我们自己的 android_pubilic 之外,还有 jcenter、jitpack等maven仓库。现在我们只需要配置一条即可,如下图所示:
修改完代码之后,重新编译。
从编译的输出日志我们可以看得出来,下载很多从jcenter上的第三方AAR,现在都是从我们配置好的Proxy服务器上下载了。
编译完毕之后,我们查看Nexus服务器上的JCenter的【Browse Storage】,可以发现我们刚才编译所需要的资源,都已经下载到了我们的Proxy代理服务器上。以后我们再使用相同的资源的话,直接从Proxy服务器下载,速度会快很多。
参考链接
- http://blog.csdn.net/liujiahan629629/article/details/39272321
- http://blog.csdn.net/u012939909/article/details/65631081
- http://blog.csdn.net/ouyang_peng/article/details/78793038
- http://blog.csdn.net/ouyang_peng/article/details/78796215
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/78804637
本文同步发表在阿里云栖:https://yq.aliyun.com/articles/290892?spm=5176.blogshare290892.0.0.6wcFaS如果觉得本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行随意打赏。您的支持将鼓励我继续创作!
【Maven学习】Nexus私服代理其他第三方的Maven仓库的更多相关文章
- Maven仓库搭建--nexus私服
Maven仓库搭建--nexus私服(Linux环境) Maven仓库简介 Maven仓库分为本地仓库.远程仓库.私服.本文重点介绍私服的使用方法. 下载安装包 网址:http://www.sonat ...
- Maven学习笔记—私服(包含maven的setting.xml配置)
为什么要用远程仓库(私服) 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件,这样就加大了中央仓库 ...
- 【Maven】---Nexus私服配置Setting和Pom
maven---nexus私服配置setting和pom 上一遍博客已经在linux服务器上,搭建好nexus私服了,博客地址:Linux搭建Nexus3.X私服 现在就需要配置setting.xml ...
- Maven配置Nexus私服
官方文档:http://books.sonatype.com/nexus-book/3.0/reference/maven.html#maven-sect-single-group 1,下载安装 首先 ...
- Maven使用Nexus私服的配置
工作记录 —————————————————————————————— 配置文件 apache-maven-3.3.3\conf\settings.xml 在mirrors(镜像)之间配置. url为 ...
- 笔记:Maven 创建 Nexus 私服
首先从 http://nexus.sonatype.org/downloads/ 下载最新版本的Nexus,下载 bundle 包,不需要Web容器. windows 系统安装 目录结构说明 目录 说 ...
- Maven学习(二)使用命令创建maven项目
创建maven项目 手动 严格参照约定目录结构,我们开始手动新增文件夹 命令方式 project项目 我们也可以使用maven自动生成目录: mvn archetype:generate -Dgrou ...
- Maven学习总结(16)——深入理解maven生命周期和插件
在项目里用了快一年的maven了,最近突然发现maven项目在eclipse中build时非常慢,因为经常用clean install命令来build项目,也没有管那么多,但最近实在受不了乌龟一样的b ...
- Maven学习存档(3)——eclipse集成maven
一.安装Maven插件 在eclipse的菜单中选择Help——Install New Software 在弹出框的Work with中写入插件安装地址:http://m2eclipse.sonaty ...
随机推荐
- C#一个关于委托和事件通俗易懂的例子
using System; namespace Test { public class 室友 { public delegate void 这是一个委托(); public void 起床晨跑去() ...
- SQLServer------聚集索引和非聚集索引的区别
转载: http://www.cnblogs.com/flashicp/archive/2007/05/08/739245.html 建立非聚集索引(vid不是主键) create index idx ...
- 超全面的JavaWeb笔记day14<用户注册登录>
案例:用户注册登录 要求:3层框架,使用验证码 1 功能分析 l 注册 l 登录 1.1 JSP页面 l regist.jsp Ø 注册表单:用户输入注册信息: Ø 回显错误信息:当注册失败时,显示错 ...
- 7 -- Spring的基本用法 -- 5... Spring容器中的Bean;容器中Bean的作用域;配置依赖;
7.5 Spring容器中的Bean 7.5.1 Bean的基本定义和Bean别名 <beans.../>元素是Spring配置文件的根元素,该元素可以指定如下属性: default-la ...
- 分布式消息队列RocketMQ与Kafka架构上的巨大差异之1 -- 为什么RocketMQ要去除ZK依赖?
我们知道,在早期的RocketMQ版本中,是有依赖ZK的.而现在的版本中,是去掉了对ZK的依赖,转而使用自己开发的NameSrv. 并且这个NameSrv是无状态的,你可以随意的部署多台,其代码也非常 ...
- 测试用例和BUG描述规范
欢迎关注我的公众号,了解更多的测试知识:[软件测试经验与教训] 一一BUG描述基础知识 Bug标题中需包含Bug的具体位置并以[]标注 举例:[模块-子模块-页面]XXXXXXXXXXXX Bug标题 ...
- details和summary标签
用于文档说明,有自带收缩.展开功能 <!DOCTYPE HTML> <html> <body> <details> <summary>HTM ...
- 在(MRv1)中JobTracker工作方式
在 Hadoop MapReduce 中,JobTracker 具有两种不同的职责: 管理集群中的计算资源,这涉及到维护活动节点列表.可用和占用的 map 和 reduce slots 列表,以及依据 ...
- 关于Android原生Email的自己的一些认识
http://blog.csdn.net/gloryhero/article/details/47259583 Email的框架图: Email 包含3个包:Eamil.Exchagne.Unifie ...
- Android 简单案例:继承BaseAdapter实现Adapter
import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import ...