maven私服,花里胡哨的搭建

359 阅读2分钟

为何用到Maven私服?

在实际开发中,项目中可能会用到第三方的jar、内部通讯的服务接口都会打入到公司的私服中。

我们从项目实际开发来看:

  1. 一些无法从外部仓库下载的构件,例如内部的项目还能部署到私服上,以便供其他依赖项目使用。
  2. 为了节省带宽和时间,在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。当本地Maven项目需要下载构件时,先去私服请求,如果私服没有,则再去远程仓库请求,从远程仓库下载构件后,把构件缓存在私服上。这样,及时暂时没有Internet链接,由于私服已经缓存了大量构件,整个项目还是可以正常使用的。同时,也降低了中央仓库的符合。

方法1:下载一个nexus3的镜像

docker pull sonatype/nexus3
  • 将容器内部/var/nexus-data挂载到主机 /home/maven/data目录
docker run -d -p 8881:8081 --name nexus -v  /home/maven/data:/var/nexus-data --restart=always sonatype/nexus3

方法2:docker-compose启动

version: '3'
services:
    #nexus容器
  nexus:
    #使用的镜像
    image: sonatype/nexus3
    container_name: nexus
    restart: always
    #容器的映射端口
    ports:
      - 8081:8081
    #定义挂载点
    volumes:
      - /home/maven/data:/var/nexus-data
运行命令
docker-compose up -d

在这里插入图片描述
ok,启动后浏览器访问一下 http://ip:8081
在这里插入图片描述

默认登陆账号 admin admin123

注意,这个时候你可能会遇到如下这个错误: Incorrect username or password, or no permission to use the application.

maven私服登录的时候默认是不能使用明文密码,要使用密文密码,一般在你创建容器的目录下,比如 root/nexus-data/admin.password ,注意,需要进入容器中找,见下方指令与图

在这里插入图片描述

[root@VM_0_5_centos maven]# docker exec -it nexus /bin/bash
bash-4.4$ cd /nexus-data/
bash-4.4$ cat admin.password
54948f3b-c748-44ec-8782-09ad2c650e8bbash-4.4$

去掉后面的 bash-4.2$,54948f3b-c748-44ec-8782-09ad2c650e8b 即为密码。

在这里插入图片描述