Nexus 学习

1. 安装及启动

  • 下载地址
  • 启动

    ./nexus start
  • 配置文件

    nexus 有两个目录

    • nexus-3.21.1-01 安装
    • sonatype-work 数据文件

具体每个目录下的各个配置文件的作用,请参考官方文档说明

在 nexus.vmoptions 文件中修改本地启动的JVM参数,在 nexus-default.properties 文件中修改端口号,默认端口8081。

2. 仓库

在这里插入图片描述

2.1 仓库类型

仓库类型 解释
proxy 代理远程中央 maven仓库,当项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到nexus 仓库,然后再从nexus 仓库下载到本地。私服我们部署在内网服务器,只要其中一个人从远程中央库下来了,以后相同的依赖包就都是从nexus 私服上进行下载,加快下载速度,不怕远程中央仓库出现问题
hosted 本地仓库,用于存放内部发布的的项目,和外部没有连接关系,是由公司内部用户发布上来的项目
group 仓库组,用来合并多个hosted/proxy仓库,当项目需要引用多个repository资源时,只需要将这些资源放到一个group中,引用这一个group即可

2.2 新建仓库

在这里插入图片描述
​ 新建仓库,选择 maven2(hosted),建立一个私有仓库。
在这里插入图片描述
版本策略:

  • Release 发行版,上线的时候时候,同一个版本的发布版本只允许deploy一次。
  • Snapshot 快照版,开发阶段使用,可以重复deploy,maven更新的时候可以强制拉取到最新的

部署策略:

  • Read-only: 只读,不允许部署
  • Disable redeploy:只能部署一次,之后任何再次部署的尝试都将导致错误
  • All redeploy:可以部署到此仓库,并在后续部署中覆盖相同的jar

3. 权限

主要是这三个方面:

在这里插入图片描述

3.1 Privileges

  • 类型:一般经常用的是 Repository admin 和 Repository view, admin一般是管理人员拥有,对整个仓库的管理和配置,view是普通开发人员,负责对仓库中的内容管理
  • 动作:add,browse,delete,edit,read 和 *,一般不赋给普通开发人员delete权限。

3.2 Roles

nexus 默认只有两种角色:nx-anonymous 和 nx-admin,前者只有浏览的权限,后者为管理员权限,所以我们需要为开发人员创建个角色,并且只添加自定义仓库的使用权限,删除操作除外。

新建develop角色:
在这里插入图片描述

3.3 Users

跟Roles类似,默认的用户只有两种:admin 和 anonymous,同样需要创建属于开发者的用户对象。点击 Create local user,填入用户名,密码等必填信息之后,关联上步的创建的角色。

新建develop用户,关联刚创建的develop角色
在这里插入图片描述

4. 本地settings.xml 配置

  • 配置 server

    仓库的下载和部署一般是在项目的pom.xml文件中配置,仓库的权限认证需要在这里配置

    <server>
     <!--要访问的私服仓库id,该id与pom文件中distributionManagement中repository元素的id相匹配-->
      <id>einherjar-release</id>
      <username>develop</username>
      <password>123456</password>
    </server>
  • 配置 mirror

    配置私服的镜像,当项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到Nexus 仓库,然后再从Nexus仓库下载到本地

    <mirror>    
        <id>einherjar-public</id>  
        <!-- central,表示该配置为中央仓库的镜像 -->
        <mirrorOf>central</mirrorOf>  
        <name>local nexus</name>
        <url></url>  
    </mirror>
  • 配置 profile

    注意: 一般不在setting.xml中配置,在项目的pom中配置, 这样的话,新的开发人员不需要再更改自己的setting.xml 就可以从远程仓库下载jar包。

    <profiles>
        <profile>
            <!--profile的唯一标识-->
            <id>test</id>
            <!--远程仓库列表-->
            <repositories/>
            <!--插件仓库列表-->
            <pluginRepositories/>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>test</activeProfile>
    </activeProfiles>

5. 项目 pom.xml 文件配置

  • 用来从指定的私服仓库下载内部jar包

    <repositories>
        <repository>
            <id>einherjar-snapshot</id>
            <url></url>
        </repository>
        <repository>
            <id>einherjar-release</id>
            <url></url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
  • 将本地项目jar包部署到私服

    <distributionManagement>
        <repository>
            <id>einherjar-release</id>
            <name>LocalReleaseRepository</name>
            <url></url>
        </repository>
        <snapshotRepository>
            <id>einherjar-snapshot</id>
            <name>LocalSnapshotRepository</name>
            <url</url>
        </snapshotRepository>
    </distributionManagement>
    

6. 测试

  • 本地 settings.xml 文件配置

    在这里插入图片描述

  • 新建两个工程,hello-world 和 nexus-tour

    hello-world pom 文件配置

在这里插入图片描述

可以看到已经成功部署到私服了
在这里插入图片描述
nexus-tour pom文件配置
在这里插入图片描述


einherjar
32 声望9 粉丝

练好基本功,方能打开任督二脉。