应用场景

   maven库分为本地仓库和远程仓库(包括私服和中央仓库)。公司自己设立,只为公司内部共享使用,同时减少外部访问和下载频率等。

使用Nexus搭建私服

下载nexus

官网链接:https://www.sonatype.com/download-oss-sonatype

打开链接,下载对应版本

nexus3私服搭建

可以选择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是手动添加的

nexus3私服搭建

三种类型:

group:是一个仓库组,可包含hosted和proxy两种库,下载时按配置顺序从中依次查找

hosted:一般部署我们自己项目打包的jar,供内部人员下载

proxy:代理远程仓库,maven-central是默认maven中央仓库代理,maven-aliyun是后加的阿里远程库代理,通过代理从远程库中下载的依赖都会被缓存到nexus的proxy库中 

使用时,将maven-aliyun和maven-third-party添加到maven-public中,常用的库靠前,如下

nexus3私服搭建

 创建hosted和proxy库是需要指定Version policy

nexus3私服搭建

release:专用于部署发布版本的jar

snapshot:专用于部署快照版本的jar,jar都是以-SNAPSHOT结尾,pom中version需以-SNAPSHOT(必须大写)结尾

mixed:可包含release和snapshot版本

创建hosted类型仓库时,需要将Deployment policy设为Allow redeploy,否则无法部署jar

nexus3私服搭建

 

Privileges

数据权限:repository权限有两种类型,repository admin和repository view,每种类型又有6种权限标识,分别是:*,add,browse、delete、edit、read,*包含其它5种权限,也可以自定义操作标识,正常系统的生成权限足够使用 

Roles

  用户角色,新建一个角色,指定该角色可对哪些库进行哪些操作,如下

nexus3私服搭建 注意:如果想访问一个group库中配置的所有库,则需要为该角色添加group中所有库的访问权限

Users

   因为默认的anonymous游客用户只能查看无法部署jar,而admin是管理员身份主要用于配置nexus,所以新建一个可以部署查看jar但不能配置nexus的用户,只需要将该创建的role赋给user,如下

anonymous

  普通未登录用户,都是游客用户,正常如果想要下载依赖,需要勾上Allow access,如下 

nexus3私服搭建

当然,为了安全性需要控制外界游客用户对私库的访问,如下

nexus3私服搭建 

然后,需要在settings文件中设置proxies代理访问即可屏蔽游客访问,只开放内部人员访问 

相关文章: