乐趣区

关于云计算:Ubuntu部署和体验Nexus3

对于 Nexus

如下图,在局域网部署了 Nexus 之后,能够缓存地方仓库的 jar,开发者开发的二方库公布到 Nexus 上,局域网内的其他人也能够从 Nexus 下载这些二方库应用:

环境信息

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

  1. 操作系统:Ubuntu 18.04.3 LTS
  2. Docker:19.03.5
  3. Nexus:3.19.1

装置 docker

  1. apt 更新:
apt-get update
  1. 装置 curl:
apt-get install -y curl
  1. 装置 docker:
curl -sSL https://get.docker.com | sh
  1. 装置实现后,查看 docker 是否失常:
root@hedy:~# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea838
 Built:             Wed Nov 13 07:29:52 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea838
  Built:            Wed Nov 13 07:28:22 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

部署 Nexus3

  1. 创立工作目录并赋权限:
mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
  1. 下载 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. 容器名为 <font color=”blue”>nexus</font>;
c. 容器的 <font color=”blue”>/nexus-data/</font> 目录被映射到宿主机的 <font color=”blue”>/usr/local/work/nexus-data/</font>;
d. 镜像是 sonatype 官网的 <font color=”blue”>3.19.1</font> 版本;

  1. 期待容器创立胜利后,Nexus3 即部署胜利;

登录和操作 Nexus3

  1. 在控制台执行以下命令,即可取得 Nexuse3 的初始密码:
echo `docker exec nexus cat /nexus-data/admin.password`

我这里失去的是 <font color=”blue”>2c9c5399-d0da-48ec-9050-dc4f43cede10</font>

  1. 点击下图右上角红框中的 <font color=”blue”>Sign in</font>,进入登录页面:

  1. 登录页面如下图,账号 <font color=”blue”>admin</blue>,明码是方才获取的 <font color=”blue”>2c9c5399-d0da-48ec-9050-dc4f43cede10</blue>:

  1. 登录胜利会提醒批改明码,如下图,请批改:

  1. 是否运行匿名拜访,这里勾选上:

角色和账号

在理论应用中,为了平安起见,不能让每个用户应用 admin 账号,您能够先创立角色,按理论须要给角色减少各种权限,再创立此角色下的账号:

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

  1. 下图红框中是角色治理页面的链接,您能够依照理论状况创立角色:

  1. 这里为了简化操作就不新建角色了,而是创立一个管理员角色的账号 <font color=”blue”>boling_cavalry</font>,操作如下图所示:

至此,Nexus3 部署结束,接下来验证 Nexus 是否提供 jar 缓存的性能;

筹备两台电脑验证 Nexus 服务

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

  1. 另外筹备两台电脑,别离是 A 电脑和 B 电脑,用来验证刚刚部署的 Nexus3 能够缓存地方仓库的 jar 包(您也能够用虚拟机创立两台电脑);
  2. A、B 两台电脑都曾经装好了 JDK8 和 Maven3;
  3. 如下图,在仓库列表页面,点击下图红框地位,能够失去 <font color=”blue”>maven-central</font> 仓库的地址 <font color=”blue”>http://192.168.50.75:8081/repository/maven-central/</font>:

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

电脑 A 和电脑 B 上的 maven 目录下的 <font color=”blue”>conf/settings.xml</font> 文件都要做以下批改:

  1. 找到 <font color=”blue”>servers</font> 节点,减少以下内容:
<server>
      <id>maven-central</id>
      <username>bolingcavalry</username>
      <password>888888</password>
</server>
  1. 找到 <font color=”blue”>mirrors</font> 节点,减少以下内容,其中 url 的内容就是后面失去的 <font color=”blue”>maven-central</font> 仓库地址:
<mirror>
  <id>maven-central</id>
  <mirrorOf>*</mirrorOf>
  <url>http://192.168.50.75:8081/repository/maven-central/</url>
</mirror>

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

在 A 电脑上编译开源我的项目 <font color=”blue”>spring-cloud-alibaba</font>,此时 Nexus 上没有缓存任何 jar 包,所以 <font color=”red”> 编译速度会很慢 </font>,因为所有依赖 jar 都要从地方仓库下载,咱们来试试:

  1. 登录 A 电脑,下载 <font color=”blue”>spring-cloud-alibaba</font> 的 2.1.1.RELEASE 归档包:
wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz
  1. 解压下载的文件:
tar -zxvf v2.1.1.RELEASE.tar.gz
  1. 进入解压后的目录:
cd spring-cloud-alibaba-2.1.1.RELEASE/
  1. 编译:
mvn clean compile -U -DskipTests
  1. 编译实现,如下图红框所示,本次编译耗时 <font color=”blue”>9 分 27 秒 </font>:

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

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

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

至此,Ubuntu 上部署和体验 Nexus3 的实战就实现了,如果您正在寻求简略快捷的 Nexus 部署计划,心愿本文能给您一些参考。

https://github.com/zq2599/blog_demos

退出移动版