Nexus搭建maven私服
一、Maven私服搭建(如果只是使用,请跳转到第三章节,点击跳转)
1.Nexus安装配置(3.10.0-04 X64版本)
1.下载nexus解压版安装文件,获取后解压到本地磁盘中,进入bin目录中,shift+鼠标右键,点击在此处打开命令窗口,输入nexus.exe /run运行nexus(可使用nexus /install安装为系统服务,使用命令行nexus start启动)
有如下提示时,证明启动成功,在浏览器中输入http://localhost:8081进入nexus主页
2.Nexus可修改默认配置,nexus-3.10.0-04\etc\nexus-default.properties文件中修改
下文中私库创建参考https://www.cnblogs.com/kongweifeng/p/9369936.html
2.在nexus中创建仓库
目的:创建三个maven仓库
Hosted 托管资源库(宿主仓库)(就是放在本地的资源库,从远程仓库中下不到,只能自己在网上找,找到jar下载下来,放在宿主仓库中,交给nexus统一管理)
proxy 代理资源库(就是配置了外网的maven远程仓库地址的资源库,本地找不到,就会通过代理资源库中的地址,找到远程仓库,从远程仓库中下载所需要的jar)
group 组资源库(组资源库中并没有jar包,而是把代理资源库和托管资源库统一配置到组资源库中(包括宿主仓库和代理仓库)) 便于我们直接访问仓库组就可以访问其他两个仓库
3.创建仓库(nexus默认用户名admin/admin123)
注:为避免nexus自带仓库影响,可全部删除,自己新建,在创建仓库之前,可以建一个存放jar的目录地址(默认的存放地址为\sonatype-work\nexus3\blobs)
创建下图中的三个资源组
(1) 新建Blob Stores
这样就成功的创建了一个blob store; path为存在在本地jar包的绝对路径
(2) 创建宿主仓库(hosted)
如下图,选择maven2-hosted
修改为如下内容
确认无误后,点击create repositiory
(3) 创建代理仓库(proxy)
1) 在Repositories页面中选择maven2(proxy) 点击
2) 在Proxy中填写一个远程代理的资源库(推荐使用aliyun的库,速度快)
远程Maven地址:https://repo1.maven.org/maven2/
阿里云的maven中央仓库:http://maven.aliyun.com/nexus/content/groups/public/
3)选择存放位置为我们新建的目录
确认后,点击create repositiory
(4) 创建组仓库(group)
1) 选择存放位置
2) 在组资源库中添加成员
※希望将hosted repositories【托管资源库】的顺序放在proxy repositories【代理资源库】之前,因为一个group【组资源库】中可以涵括这些托管资源库和代理资源库。而一整个的group是作为一个public,一个接口给别人使用的。所以当查找Jar包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从托管资源库(本地仓库)去查找是否有jar。这样访问外网的消耗比起来在本地查找,当然是将托管资源库放在代理资源库之前的优先位置了。
到这里,我们的maven私服搭建完成。
二、私服管理
- maven私服测试
测试前提:maven环境,在maven的setting.xml文件中,配置nexus服务地址
测试目的:新建maven项目,在pom中添加jar包maven build,在eclipse控制台查看maven获取jar包地址是否正常
(1) 修改maven安装目录中conf\setting.xml内容
在Repositority页面中如下图,点击copy,复制地址,在setting.xml文件中添加mirror信息,如下图,在servers标签中添加server信息,修改后保存退出
(2) 在eclipse中新建maven项目,添加测试jar包(一些常用包),检查获取地址是否正确,出现下图时,如果没有卡顿现象,一般下载成功(可到maven的存放jar包位置去查看),如果出现错误,可到控制台Problem中查看明细
- nexus上传jar包
(1)maven命令上传
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc6
-Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=D:\ojdbc6.jar
-Durl=http://localhost:8081/repository/nexus_hosted -DrepositoryId=nexus_hosted
注:红色第一部分为要上传的仓库标识符,DrepositoryId为要验证的仓库,需在setting.xml文件中配置
出现如图所示时,jar包上传编译成功,进入nexus页面,进入上传时所选的仓库,可以查看上传的jar是否存在(页面上传方式可能上传成功后包里没有*.jar文件)
- 使用测试Jar包到项目中
在第三步中,使用mvn命令上传中,使用到了三个关于jar包的参数,分别为DgroupId、DartifactId和Dversion,在maven项目的pom.xml文件中,直接使用,如如下所示
按下ctrl+s后,项目中已经导入了该jar包
到此为止,我们已经从安装到配置搭建好了maven私服搭建和测试使用。
- maven权限控制
并不是所有的人员都需要去管理maven私服和配置仓库,大多数开发人员只需要有获取jar包的权限就足够了。所以要对nexus服务进行权限控制。
按照需求可分为系统管理员(admin)、jar包提供者、开发人员。
(1) 角色说明
系统管理员:对系统所有功能可见且可操作(角色创建、仓库创建等等)
Jar包提供者:拥有jar包上传的权限,仓库访问的权限,其他功能屏蔽
开发人员:只拥有仓库访问权限,其他所有功能全部屏蔽
(2) Nexus权限说明
Nexus的权限分为三个部分,privileages权限,roles角色和Users用户,即用户拥有角色,角色拥有权限的关系,向下都为一对多关系
权限标识 权限说明 备注
nx-blobstores-read 仓库目录访问权限
Nx-component-upload Jar包上传权限 须包含仓库目录访问权限和仓库查看权限
Nx-repository-view---* 对所有仓库进行查看权限
Nx-all 所有控制权
可依据如上对应关系和权限创建相关用户.
三、使用maven私服
1.安装maven插件
下载maven解压版,解压后,配置环境变量,进入安装目录下conf\setting.xml文件中,在servers标签中添加一个server。Id为maven私库唯一标识,用户名和密码由管理员提供
在标签中添加,其中url为管理员提供的仓库地址
Maven下载地址: https://maven.apache.org/download.cgi
安装教程: https://www.cnblogs.com/eagle6688/p/7838224.html
2.修改eclipse配置
在eclipse中选择window-Preferences中,搜索maven,在maven菜单下的installations界面的右边店家add选择maven的安装目录。在下方选择setting.xml的文件路径,在User Settings下点击Update Settings或者选择setting.xml文件位置(如下图)
重启eclipse后,就可以使用maven私库了
具体的jar包引入参数可使用管理员提供账号登陆平台查询。
如果适用,请点个赞吧!!