写点什么

Ubuntu 部署和体验 Nexus3

作者:程序员欣宸
  • 2022-11-14
    广东
  • 本文字数:1763 字

    阅读完需:约 6 分钟

Ubuntu部署和体验Nexus3

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

关于 Nexus

  • 如下图,在局域网部署了 Nexus 之后,可以缓存中央仓库的 jar,开发的二方库发布到 Nexus 上,局域网内的其他人也可以从 Nexus 下载这些二方库使用:

环境信息

  • 本次实战是在 Linux 服务器上通过 Docker 安装 Nexus3:


  1. 操作系统:Ubuntu 18.04.3 LTS

  2. Docker:19.03.5

  3. Nexus:3.19.1

Ubuntu 安装 docker

  • apt 更新:


apt-get update
复制代码


  • 安装 curl:


apt-get install -y curl
复制代码


  • 安装 docker:


curl -sSL https://get.docker.com | sh
复制代码


  • 安装完成后执行命令 docker version 检查 docker 是否正常;

部署 Nexus3

  • 创建工作目录并赋权限:


mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
复制代码


  • 下载 Nexus 镜像并创建容器:


docker run -d \-p 8081:8081 \--name nexus \-v /usr/local/work/nexus-data:/nexus-data \sonatype/nexus3:3.19.1
复制代码


  • 上述命令的参数较多,有几点需要注意:a. 容器的 8081 端口映射到宿主机的 8081 端口;b. 容器名为 nexus;c. 容器的/nexus-data/目录被映射到宿主机的/usr/local/work/nexus-data/;d. 镜像是 sonatype 官方的 3.19.1 版本;

  • 等待容器创建成功后,Nexus3 即部署成功;

登录和操作 Nexus3

  • 在控制台执行以下命令,即可获得 Nexus3 的初始密码:


echo `docker exec nexus cat /nexus-data/admin.password`
复制代码


  • 我这里得到的是 2c9c5399-d0da-48ec-9050-dc4f43cede10

  • 点击下图右上角红框中的 Sign in ,进入登录页面:

  • 登录页面如下图,账号 admin ,密码是刚才获取的 2c9c5399-d0da-48ec-9050-dc4f43cede10

  • 登录成功会提示修改密码,如下图,请修改:

  • 是否运行匿名访问,这里勾选上:

角色和账号

  • 在实际使用中,为了安全起见,不能让每个用户使用 admin 账号,您可以先创建角色,按实际需要给角色增加各种权限,再创建此角色下的账号:

  • 点击下图红框中的按钮,进入设置页面:

  • 下图红框中是角色管理页面的链接,您可以按照实际情况创建角色:

  • 这里为了简化操作就不新建角色了,而是创建一个管理员角色的账号 bolingcavalry,操作如下图所示:

  • 至此,Nexus3 部署完毕,接下来验证 Nexus 能否提供 jar 缓存的功能;

准备两台电脑验证 Nexus 服务

  • 接下来验证的是 Nexus 缓存中央仓库 jar 包的能力,看看有了 Nexus,能否让我们在开发和构建过程中更快的下载到所需 jar;

  • 另外准备两台电脑,分别是 A 电脑和 B 电脑,用来验证刚刚部署的 Nexus3 可以缓存中央仓库的 jar 包(您也可以用虚拟机创建两台电脑);

  • A、B 两台电脑都已经装好了 JDK8 和 Maven3;

  • 如下图,在仓库列表页面,点击下图红框位置,可以得到 maven-central 仓库的地址http://192.168.50.75:8081/repository/maven-central/:

修改两台电脑的 maven 配置文件

  • 电脑 A 和电脑 B 上的 maven 目录下的 conf/settings.xml 文件都要做以下修改:

  • 找到 servers 节点,增加以下内容:


<server> <id>maven-central</id> <username>bolingcavalry</username> <password>888888</password></server>
复制代码


  • 找到 mirrors 节点,增加以下内容,其中 url 的内容就是前面得到的 maven-central 仓库地址:


<mirror> <id>maven-central</id> <mirrorOf>*</mirrorOf> <url>http://192.168.50.75:8081/repository/maven-central/</url></mirror>
复制代码

在 A 电脑上编译构建项目(应该很慢)

  • 在 A 电脑上编译开源项目 spring-cloud-alibaba,此时 Nexus 上没有缓存任何 jar 包,所以编译速度会很慢,因为所有依赖 jar 都要从中央仓库下载,我们来试试:

  • 登录 A 电脑,下载 spring-cloud-alibaba 的 2.1.1.RELEASE 归档包:


wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz
复制代码


  • 解压下载的文件:


tar -zxvf v2.1.1.RELEASE.tar.gz
复制代码


  • 进入解压后的目录:


cd spring-cloud-alibaba-2.1.1.RELEASE/
复制代码


  • 编译:


mvn clean compile -U -DskipTests
复制代码


  • 编译完成,如下图红框所示,本次编译耗时 9 分 27 秒:

  • 去 Nexus 网页上看看,如下图,此时已经缓存了不少 jar:

在 B 电脑上编译构建项目(应该很快)

  • 在 B 电脑做同样的操作,此时 Nexus 上已缓存了编译所需的 jar 包,所以整个编译过程应该明显变快,最终操作结果如下图所示,仅用了 1 分零 6 秒:

  • 至此,Ubuntu 上部署和体验 Nexus3 的实战就完成了,如果您正在寻求简单快捷的 Nexus 部署方案,希望本文能给您一些参考。

欢迎关注 InfoQ:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...


发布于: 刚刚阅读数: 4
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018-04-19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
Ubuntu部署和体验Nexus3_Docker_程序员欣宸_InfoQ写作社区