基于nexus3|基于nexus3 的maven私服配置

[TOC]
nexus3 环境配置 【基于nexus3|基于nexus3 的maven私服配置】关于nexus私有化部署与安装,我在上一篇已经详细的介绍了,不懂得可以参考《centos7配置nexus3(docker)服务器》
maven nexus私服配置与应用 引言(balabala)

nexus 作为一款优秀的仓库管理工具,不仅支持maven、docker、npm、apt等多种仓库的配置。它支持hosted\procxy\group三种模式提供存储管理,nexus3 最新的还新增了store隔离存储功能,通过UI创建不同的store为repo指定不同的存储空间,达到物理隔离。
java后端开发人员,对于maven应该不会陌生,对于一些优秀的jar,我们都可以在maven仓库当中找到,同时maven还提供各类插件进行项目级的编译、打包等工作。通过maven很大程度解决了我们对于包管理的问题。无论是使用外部库还是内部发布的jar包管理,基于nexus的maven私服为我们提供了这中管理功能。
  • 代理仓库,可以配置代理maven镜像,公司内部统一从私服拉取(配置代理的活让运维去干吧^-^,关键是拉过一次的包,在服务端是有缓存的,所以二次加载速度真的是飞快^-^)
  • hosted仓库,按模块编程方式,通过架构师的设计,将功能隔离后独立开发测试,到验收阶段,交付产物我们都可以通过maven的deploy进行产物的上传与管理,项目组内需要引用的小伙伴,想引用公共库一样来引用我们自己上传的包,再也不用烦恼私有包管理版本核对啦(用了都说好^-^)。
  • group仓库,看了proxy 仓库的同学,肯定有疑问啦,maven各类公开仓库还是很多的,再加上一个hosted的 releases与snapshots,难道每次拉包,都要去切换吗? no no no, group 就是解决该问题的。通过穿梭框配置方式,打包你需要的仓库,统一配置。
nexus3 maven常用代理仓库配置
  • maven cent
maven中心仓库,速度不怎么样,主要是全,所以建议代理一个
地址: https://repo1.maven.org/maven2/
(nexus3 缺省给创建好了, 贴心 +1)
  • aliyun
这个就是国内最受欢迎的镜像啦,不仅全而且速度非常快,
地址: https://maven.aliyun.com/repository/public
阿里良心,点赞 +1
  • spring
spring 有两个库,连接速度没怎么测过,大多库的拉取都有优先走ali,估计速度应该会很感人,不过作为补充还是贴上来,对于最新的一些库,该仓库还是快一些的
地址(releases): https://repo.spring.io/milestone
地址(snapshots): https://repo.spring.io/snapshot
创建方法 基于nexus3|基于nexus3 的maven私服配置
文章图片
创建仓库
基于nexus3|基于nexus3 的maven私服配置
文章图片
选择proxy仓库
基于nexus3|基于nexus3 的maven私服配置
文章图片
填写镜像地址
基于nexus3|基于nexus3 的maven私服配置
文章图片
选择存储分组
Ps. 这里缺省只有一个default,其它的都是我自己通过store管理创建,他的作用其实就是隔离存储,nexus3新增的,感觉很实用。有一次迁移私服,光maven就有十几个G。
nexus3 私用releases与snapshots仓库配置,构建公司级仓库
配置hosted仓库要比配置proxy简单。上述步骤一样,少了配置代理进行地址的填写一项。
有一点要注意的是,在deploymentPolicy一项,请选择allow redeploy(缺省是 disabled)
nexus3 缺省给你配置了maven-releases和maven-snapshots连个hosted仓库 (贴心+2^-^)
配置group 仓库
配置group仓库就更简单啦,点击创建->选择group->取个名字,拉到最下面,让后将你要整合的repo移到右侧即可
本地maven配置
玩过maven的都知道,maven的配置是通过settings.xml进行配置的。这里我们需要配置的东西不多,就mirrors和servers。配置mirrors是为了让本地maven从私服来拉取资源;配置servers主要是用来对本地的包进行deploy管理。
  • settings.xml的位置
无论是windows还是unix类系统,你如果是缺省安装,他基本都在你当时安装的用户配置下,一个隐藏文件.m2下。当然你也可能是是自己配置的环境变量,获取配置文件应该在安装目录 ./conf/seetings.xml内
  • mirrors
releases 这里填写你的group仓库地址(不知道的打开nexus,点击repo进去就有url属性,拷贝过来) *

  • servers
releases 你的用户名你的密码nexus-releases 你的用户名你的密码nexus-snapshots 你的用户名你的密码

本地module/project 打包部署配置
在项目级maven管理中,将本地编译成果部署到私服上去,需要配置distributionManagement, 其实这个配置你在旧nexus里面也可以找到,nexus3没有找到,大家可以参考一下我的,我用Xxx:xxx屏蔽了我的IP和端口,大家参照自己设置的hosted的releases和snapshots来配置就好啦。
nexus-releases localRelease http://xxx:xxx/repository/maven-snapshots/ nexus-snapshots localSnapshot http://xxx:xxx/repository/maven-snapshots/

关于权限配置的问题
如果碰到授权问题,检查一下你的distrubutionManagement内的repo的id与你当前有效settings.xml(一定要确定有效的,我自己配置了多套环境,IDEA可以覆盖加载,你可通过指定setting.xml方式来确认)内配置的id是否一致。主要是这个原因导致的!
使用
通过 mvn install 命令,通过控制台,你可以非常清晰的看到它从配置的mirrors拉取依赖包
通过 deploy发布本地包时,会进行严格的权限校验,必须配置 distributionManegement.同时通过版本号自动确认部署至 releases或snapshots。当然,你也可以通过 mvn releases:prepare 等命令来实现relesase的发布

    推荐阅读