一、安装nexus

  • 安装jdk
  • 安装maven
  • 部署安装 nexus
    • linux安装包放在网盘中
  • 解压nexus tar zxvf nexus-3.19.1-01-unix.tar.gz
  • 如果系统配置低,可以修改bin目录下的 nexus.vmoptions
    • -Xms2703m
    • -Xmx2703m
  • 启动 ./bin/nexus start
  • 访问 http://xxxxx:8081/

二、nexus后台管理界面操作

2.1、 登录并修改密码

  • 根据提示来即可

2.2、搭建私服库

  • Repositories
    • name的一些说明:
      • maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
      • maven-releases:私库发行版jar
      • maven-snapshots:私库快照(调试版本)jar
      • maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
    • Nexus默认的仓库类型有以下四种:
      • group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
      • hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库);
      • proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径)
      • virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用);
  • Policy(策略):表示该仓库为发布(Release)版本仓库还是快照(Snapshot)版本仓库;
  • Public Repositories下的仓库
    • 3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库,即第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去;
    • Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
    • Central: 用来代理maven中央仓库中发布版本构件的仓库
    • Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
    • Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
    • Releases: 内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的宿主类型仓库;release是发布版本;
    • Snapshots:发布内部的SNAPSHOT模块的仓库,用来部署管理内部的快照版本构件的宿主类型仓库;snapshots是快照版本,也就是不稳定版本
  • 所以自定义构建的仓库组代理仓库的顺序为:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下载包会更快

2.3、构建思路

  • 首先要明白我们从私服上拉取的jar包的来源,既然是私服,那肯定少不了自定义的jar包,这些jar包是在宿主仓库,也就是hosted类型的仓库,除此之外还有其他的jar包,需要从远程仓库下载,也就是proxy代理类型的仓库。既然来源有多个,我们为了方便,通常会创建一个group,也就是组类型的仓库,将宿主类型和代理类型的包含进去,我们只需要访问组仓库即可
    在这里插入图片描述

2.4、构建流程

  • 创建用户
    • nx-admin:管理员权限
    • nx-anonymous:匿名用户
  • 创建Blod Stores:创建数据文件的保存目录
    • Enable Soft Quota:限制目录大小
  • 创建代理仓库:
    • maven2(proxy)
      • Name:唯一值
      • Remote storage:指定代理仓库,也就是第三方仓库,一般有阿里、华为等
        • http://maven.aliyun.com/nexus/content/groups/public/
  • 创建宿主仓库
    • maven2(host)
      • Name:唯一值
      • Hosted:选择Allow 允许上传
  • 创建组
    • maven2(group)
      • Name:唯一值
      • Group:也就是拉取代码的仓库顺序
        • 先是 宿主(host)、然后是代理仓库(proxy)

2.5、使用过程

  • 先通过 后台管理界面上传 私服jar包

  • 在pom依赖中配置lRepository

  • 修改settings.xml文件

    • 唯一id,自定义的,和下面的上传DrepositoryId对应一致
    • 登录仓库的 账号密码
    <server>
    	<id>zzx-group</id>  
    	<username>zzx</username>
    	<password>123456</password>
    </server>
    
    • 拉取jar包,从group中拉取,因为host和proxy,我们都加入到组中了
    <mirror>
    	<id>zzx-group</id>
       <name>zzx-group</name>
    	<mirrorOf>*</mirrorOf>
    	<url>http://101.201.145.252:8081/repository/zzx-group/</url>
    </mirror>
    
    {"canTryAgain":false,"scope":"PREVIOUS_EXCEPTION","error":"209","message":"Message[RESOURCE_NOT_EXIST]: Fail to get the resource, userId=weixinobU7Vjn4l2herhluoW8DcsdC8ceU, resourceId=WEBRESOURCE7b81684dbb6a4306b6c7648ede508e00, version=0, mime=unknown","objectUser":"weixinobU7Vjn4l2herhluoW8DcsdC8ceU"}
    

2.6、命令上传

<dependency>
    <groupId>sino</groupId>
    <artifactId>sino</artifactId>
    <version>1.0.0</version>
</dependency>
  • 执行命令
    • mvn deploy:deploy-file -DgroupId=com.framework -DartifactId=zzx-order-api -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=target/zzx-order-api.jar -Durl=http://192.168.111.111:8081/repository/maven-snapshots/ -DrepositoryId=maven-snapshots
      • DgroupId,-DartifactId,-Dversion三个参数对应jar包的三个参数,也就是在pom文件中依赖的时候需要的三个参数
      • Dpackaging:打包类型 (jar文件或者pom文件都可以)
      • Dfile: jar包位置
      • Durl: 私服仓库地址:http://101.201.145.252:8081/repository/zzx-host/ 传到我们的宿主仓库
      • DrepositoryId: 要上传的服务id,settings.xml中的 server的id 我们自己定义的
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐