应用场景
maven库分为本地仓库和远程仓库(包括私服和中央仓库)。公司自己设立,只为公司内部共享使用,同时减少外部访问和下载频率等。
使用Nexus搭建私服
下载nexus
官网链接:https://www.sonatype.com/download-oss-sonatype
打开链接,下载对应版本
可以选择windows版和linux版,两者区别不大,以windows为例,使用nexus-3.16.1-02-win64.zip版本。
扩展:
nexus有两种搭建方式。war包和非war包
1、war包方式,直接把war包放到服务器包内,如tomcat下webapps文件夹下,启动tomcat,访问部署的war包即可
2、非war包方式主要介绍两个版本部署方式
2.1 如果下载的是nexus-nexus-3.16.1-02-bundle.zip版本,解压后...\nexus-3.16.1-02\bin\jsw\windows-x86-64路径下直接双击console-nexus.bat即可,其他bat文件自行百度;(Linux环境下解压nexus-3.16.1-02-bundle.tar.gz或nexus-3.16.1-02-bundle.zip后,在...\\nexus-3.16.1-02\bin下执行./nexus start命令即可)
2.2 如果是nexus-3.16.1-02-win64.zip版本,在...\nexus-3.16.1-02\bin路径下shift+右键,选择打开命令窗口,执行nexus.exe /run命令即可
war包文件是没有内置服务器的,bundle式文件绑定了jetty,所以直接启动就可以访问
3、仓库物理地址
war包部署的nexus,其仓库物理地址配置文件是\WEB-INF\plexus.properties,属性是nexus-work=${user.home}/sonatype-work/nexus;
nexus-3.16.1-02-bundle部署的nexus仓库物理地址配置文件是\nexus-3.16.1-02\conf\nexus.properties;
nexus-3.16.1-02部署的nexus仓库物理地址配置文件是\nexus-3.16.1-02\bin\nexus.vmoptions;这些配置中的sonatype-work文件夹是可以删除的,然后在启动服务时候自动创建
安装
下载解压文件后:配置bin目录下nexus.vmoptions文件,适当调整内存参数,防止占用内存太大
etc目录下nexus-default.properties文件可配置默认端口和host及访问根目录。
linux:bin目录下执行sh nexus start启动服务,sh nexus stop停止服务
windows:bin目录,按住Shift键右键鼠标,选择“在此处打开命令窗口”,安装服务nexus.exe /install,卸载服务nexus.exe /uninstall,到计算机管理中启动nexus服务
地址栏访问nexus:localhost:8081,每次启动服务需要等待一会才可以打开
用户登录
默认登录是游客身份:anonymous,可以查看仓库并下载依赖,但不能配置nexus
使用默认管理员身份登录,帐号:admin,密码:admin123
Blob Stores
依赖index存储目录,默认存储在default下:\sonatype-work\nexus3\blobs\default;
也可以自己新建一个目录专门存储某个库的索引,后面创建repository时可以选择;
另外,下载或上传到nexus3.10中的jar是被加密存储在\sonatype-work\nexus3\db下
repository
一、nexus默认创建了几个仓库,如下,其中maven-aliyun和maven-third-party是手动添加的
三种类型:
group:是一个仓库组,可包含hosted和proxy两种库,下载时按配置顺序从中依次查找
hosted:一般部署我们自己项目打包的jar,供内部人员下载
proxy:代理远程仓库,maven-central是默认maven中央仓库代理,maven-aliyun是后加的阿里远程库代理,通过代理从远程库中下载的依赖都会被缓存到nexus的proxy库中
使用时,将maven-aliyun和maven-third-party添加到maven-public中,常用的库靠前,如下
创建hosted和proxy库是需要指定Version policy
release:专用于部署发布版本的jar
snapshot:专用于部署快照版本的jar,jar都是以-SNAPSHOT结尾,pom中version需以-SNAPSHOT(必须大写)结尾
mixed:可包含release和snapshot版本
创建hosted类型仓库时,需要将Deployment policy设为Allow redeploy,否则无法部署jar
Privileges
数据权限:repository权限有两种类型,repository admin和repository view,每种类型又有6种权限标识,分别是:*,add,browse、delete、edit、read,*包含其它5种权限,也可以自定义操作标识,正常系统的生成权限足够使用
Roles
用户角色,新建一个角色,指定该角色可对哪些库进行哪些操作,如下
注意:如果想访问一个group库中配置的所有库,则需要为该角色添加group中所有库的访问权限
Users
因为默认的anonymous游客用户只能查看无法部署jar,而admin是管理员身份主要用于配置nexus,所以新建一个可以部署查看jar但不能配置nexus的用户,只需要将该创建的role赋给user,如下
anonymous
普通未登录用户,都是游客用户,正常如果想要下载依赖,需要勾上Allow access,如下
当然,为了安全性需要控制外界游客用户对私库的访问,如下
然后,需要在settings文件中设置proxies代理访问即可屏蔽游客访问,只开放内部人员访问