【Maven学习】Nexus私服代理其他第三方的Maven仓库

一、背景

通过前面的两篇博客,我们已经将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()的代理也都加入进来了,如下图所示:

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

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

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

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

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

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

参考链接



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

转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/78804637
本文同步发表在阿里云栖:?spm=5176.blogshare290892.0.0.6wcFaS

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

时间: 2024-09-20 00:56:07

【Maven学习】Nexus私服代理其他第三方的Maven仓库的相关文章

求解关于Maven和Nexus私服索引不完整的问题

问题描述 首先set.xml:<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

maven学习(中)- 私服nexus搭建

接上回继续,相信大家对maven每次都联网从国外站点下载依赖项的龟速网络已经不坎忍受了,今天先来看看如何搭建"仓库私服",目前nexus是使用比较广泛的私服软件之一,下面将介绍基本用法:   一.到nexus官网下载最新版 1.1 下载地址:http://www.sonatype.org/downloads/nexus-latest-bundle.zip (目前最新版本是2.7.2-03) (2015-07-02注: 上面的下载地址好象已经失效了,新的地址为 http://www.so

MAVEN学习笔记之私服Nexus(2)

MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Adminisrator path b:修改java的绝对路径 文件bin\jsw\config\wrapper.config 内容wrapper.java.command=E:\IDE\Java\JDK\bin\java c:cmd中 nexus install ;nexus start localhost

【Maven学习】Nexus OSS私服仓库的备份与迁移

背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nexus OSS私服仓库 新的Nexus OSS私服仓库 明显老的Nexus OSS私服仓库的内容比新的Nexus OSS私服仓库的内容多.因此我们现在的工作就是将办公室上的老的Nexus服务器上的所有的数据迁移到机房的Nexus服务器.这一篇博客记录下整个Nexus OSS私服仓库的备份与迁移的过程.

Maven 使用Nexus创建私服

仓库管理软件:     私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库      有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:      Apache基金会的Archiva.JFrog的Artifacotory和Sonatype的Nexus,Archiva是开源的,Artifacotory和Nexus的核心也是开源的     Nexus分为开源版和专业版,开源版本基本GPLv3许可证,其特性足以满足大部分Maven用户的需要,特性如下:      较小的

Maven学习五之Nexus中各repository介绍

  这时候已经搭建好了Nexus,要做操作前先登录,默认用户名admin,默认密码admin123.来看看各个Repository.点击左侧Repositories.     一 Public Repositories   先来看仓库类型 hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库.比如公司的第二方库. proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库. group:仓库组,用来合并多个hosted/proxy仓库.   这是一个Group,是一个仓

maven学习九之pom.xml或settings.xml对nexus的配置

  (1)在POM中配置Nexus仓库     <project>          ...          <repositories>             <repository>                  <id>nexus</id>                  <name>Nexus</name>                  <url>http://localhost:8081

Maven学习四之利用Nexus来构建企业级Maven仓库

概述 Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行模块间的高效依赖开发.      发现问题 虽然你可以通过中央仓库来获取你所需要的jar包,但是现实往往是存在很多问题: 问题1 网速慢,你可能需要花很长的时间来下载你所需要的jar 问题2 如果你的公司很大,有几百甚至几千人再用Maven,那么这些人都去通过中央仓库来获取jar,那么这是一个很大的资源浪费.如果

eclipse-关于maven无法从nexus私服导包

问题描述 关于maven无法从nexus私服导包 我自己搭好了一个私服能用...但是eclipse无法导包究竟是什么原因???希望各位大大指教下...我eclipse ----maven已经 配置好了installations 和user settings我的settings.xml如下 <?xml version=""1.0"" encoding=""UTF-8""?><settings xmlns=&qu