【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等没有做代理。

一、背景

通过前面的两篇博客,我们已经将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
本文同步发表在阿里云栖:https://yq.aliyun.com/articles/290892?spm=5176.blogshare290892.0.0.6wcFaS

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

这里写图片描述

相关文章
|
3月前
|
Java 应用服务中间件 测试技术
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
Maven 是一款 Java 项目构建工具,主要用于管理 jar 包及其依赖关系。 本文主要了解Maven基础知识及基础应用,旨在为之后的进一步学习奠定基础。 内容上几近全为学习《尚硅谷2022版Maven教程》整理所得。 仅供参考。
295 81
Maven学习笔记(一):Maven基础(基于命令行的学习和应用)
|
4月前
|
敏捷开发 Java 持续交付
阿里云云效产品使用合集之maven仓库是否可以代替自建的Nexus
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
XML 安全 Java
【Maven】依赖管理,Maven仓库,Maven核心功能
【Maven】依赖管理,Maven仓库,Maven核心功能
716 3
|
4月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
69 2
【前端学java】如何从前端视角快速学习Maven
|
4月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
5月前
|
Java Maven
maven开源仓库
maven开源仓库
132 6
|
4月前
|
敏捷开发 JavaScript Java
阿里云云效产品使用合集之如何进行Maven私有仓库迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
50 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
1月前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
148 8
|
1月前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
128 3