Nexus私服

Nexus 私服搭建

参考链接:: https://github.com/sonatype/docker-nexus3


Nexus简介

Nexus全称Sonatype Nexus,是Maven仓库管理器,也可以叫Maven的私服。
私服是架设在局域网的一种特殊的远程仓库服务,目的是代理远程仓库及部署第三方构件。当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

Maven仓库分类:

  • 本地仓库

  • 远程仓库

    远程仓库分为:中央仓库、私服、其他公共仓库。
    

私服的特性:

  • 节省自己的外网带宽:
    减少重复请求造成的外网带宽消耗
  • 加速Maven构建:
    如果项目配置了很多外部远程仓库的时候,构建速度就会大大降低,利用私服,Maven只检查局域网的数据,提高构建的速度。
  • 部署第三方构件:
    当某些构件无法从外部仓库获得的时候,便可以把这些构件部署到内部仓库(私服)中,供内部maven项目使用。
  • 提高稳定性,增强控制:
    Internet不稳定的时候,maven构建也会变的不稳定,私服缓存了大量构建,可供暂时连接不到网络时Maven的正常运行。
  • 降低中央仓库的负荷:
    maven中央仓库被请求的数量是巨大的,使用私服可以避免很多对中央仓库的重复下载,降低中央仓库的压力。
    因此我们在实际的项目中通常使用私服来间接访问中央仓库,项目通常不直接访问中央仓库

Nexus常用功能:

  • 指定私服的中央地址
  • 将自己的Maven项目指定到私服地址
  • 从私服下载中央库的项目索引
  • 从私服仓库下载依赖组件
  • 将第三方项目jar上传到私服供其他项目组使用。

Nexus3安装:

默认情况下,nexus是提供了四个仓储 :

  • maven-central 代理中央仓库,从公网下载jar
  • maven-release 发布版本内容(即自己公司发行的jar的正式版本)
  • maven-snapshots 发布版本内容(即自己公司发行的jar的快照版本)
  • maven-public 以上三个仓库的小组

其中Type类型中:

  • proxy是代理的远程仓库
  • hosted是指本地或者内部项目仓库
  • group只是一个仓库组,它包含其他的几个仓库
  • Releases是指发行版本(本地或者内部项目)
  • Snapshots是指正在构建的版本(本地或者内部项目)
  • Central是指中央仓库(远程中央仓库下载的构件放入此处)

安装Docker:

$ vim docker.sh

#!/bin/sh  
  
#install curl  
sudo apt-get update && sudo apt-get install -y curl

#install-docker
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

sudo systemctl restart docker && sudo systemctl enable docker

sudo usermod -aG docker tuser

$ bash docker.sh

...
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker

在Ubuntu 20.04下卸载Docker

卸载Docker之前,删除所有容器、映像、卷和网络,停止所有正在运行的容器并删除所有docker对象:
docker container stop $(docker container ls -aq)
docker system prune -a --volumes
卸载Docker:
sudo apt purge docker-ce
sudo apt autoremove
卸载完成。

通过Docker安装Nexus:

  • 实现nexus管理maven私服
  • nexus设置maven仓库
  • 默认情况下,nexus是提供了四个仓储
$ sudo docker search nexus    #查看可用版本

NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
sonatype/nexus3                              Sonatype Nexus Repository Manager 3             906                  
sonatype/nexus                               Sonatype Nexus                                  440                  [OK]
clearent/nexus                                                                               22                   
sonatype/nexus-iq-server                     Sonatype Nexus IQ Server                        16                   
bradbeck/nexus-https                         Dockerized version of Nexus Repo Manager 3 w…  
...
$ sudo mkdir -p /qj/nexus && sudo chown -R 200 /qj/nexus    #持久性存储需要将主机目录挂载为卷,并且是不可移植的,因为nexus依赖主机上具有正确权限的现有目录。
$ sudo docker run -d -p 8081:8081 --name nexus -v /qj/nexus/:/nexus-data sonatype/nexus3

...
Unable to find image 'sonatype/nexus3:latest' locally
latest: Pulling from sonatype/nexus3
1b8dabac56ed: Pull complete 
6500ac87b29f: Pull complete 
71d938b2ad90: Pull complete 
42de81017ff2: Pull complete 
Digest: sha256:93eac6b837c1486af3ee146bfeadaa65b66bd481bd2d744b3c25d36c73261174
Status: Downloaded newer image for sonatype/nexus3:latest
a9218fd93cc2063ce00243edad648d3c87f58a465aae62e663a42b9817d094cb
$ sudo docker ps  #查看容器信息

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                    NAMES
a9218fd93cc2   sonatype/nexus3   "sh -c ${SONATYPE_DI…"   49 seconds ago   Up 47 seconds   0.0.0.0:8081->8081/tcp   nexus

测试:

链接: http://192.168.10.232:8081
在这里插入图片描述
代理中央仓库:
Repositories/maven-central
http://maven.aliyun.com/nexus/content/groups/public/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值