关于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更新:
  1. apt-get update
  1. 安装curl:
  1. apt-get install -y curl
  1. 安装docker:
  1. curl -sSL https://get.docker.com | sh
  1. 安装完成后,检查docker是否正常:
  1. root@hedy:~# docker version
  2. Client: Docker Engine - Community
  3. Version: 19.03.5
  4. API version: 1.40
  5. Go version: go1.12.12
  6. Git commit: 633a0ea838
  7. Built: Wed Nov 13 07:29:52 2019
  8. OS/Arch: linux/amd64
  9. Experimental: false
  10. Server: Docker Engine - Community
  11. Engine:
  12. Version: 19.03.5
  13. API version: 1.40 (minimum version 1.12)
  14. Go version: go1.12.12
  15. Git commit: 633a0ea838
  16. Built: Wed Nov 13 07:28:22 2019
  17. OS/Arch: linux/amd64
  18. Experimental: false
  19. containerd:
  20. Version: 1.2.10
  21. GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
  22. runc:
  23. Version: 1.0.0-rc8+dev
  24. GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
  25. docker-init:
  26. Version: 0.18.0
  27. GitCommit: fec3683

部署Nexus3

  1. 创建工作目录并赋权限:
  1. mkdir -p /usr/local/work/nexus-data && chown -R 200 /usr/local/work/nexus-data
  1. 下载Nexus镜像并创建容器:
  1. docker run -d \
  2. -p 8081:8081 \
  3. --name nexus \
  4. -v /usr/local/work/nexus-data:/nexus-data \
  5. sonatype/nexus3:3.19.1

上述命令的参数较多,有几点需要注意:

a. 容器的8081端口映射到宿主机的8081端口;

b. 容器名为nexus;

c. 容器的/nexus-data/目录被映射到宿主机的/usr/local/work/nexus-data/;

d. 镜像是sonatype官方的3.19.1版本;

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

登录和操作Nexus3

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

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

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



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



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



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

角色和账号

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

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

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

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

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

准备两台电脑验证Nexus服务

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

  1. 另外准备两台电脑,分别是A电脑和B电脑,用来验证刚刚部署的Nexus3可以缓存中央仓库的jar包(您也可以用虚拟机创建两台电脑);
  2. A、B两台电脑都已经装好了JDK8和Maven3;
  3. 如下图,在仓库列表页面,点击下图红框位置,可以得到maven-central仓库的地址http://192.168.50.75:8081/repository/maven-central/

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

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

  1. 找到servers节点,增加以下内容:
  1. <server>
  2. <id>maven-central</id>
  3. <username>bolingcavalry</username>
  4. <password>888888</password>
  5. </server>
  1. 找到mirrors节点,增加以下内容,其中url的内容就是前面得到的maven-central仓库地址:
  1. <mirror>
  2. <id>maven-central</id>
  3. <mirrorOf>*</mirrorOf>
  4. <url>http://192.168.50.75:8081/repository/maven-central/</url>
  5. </mirror>

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

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

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

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

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

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



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

https://github.com/zq2599/blog_demos

Ubuntu部署和体验Nexus3的更多相关文章

  1. Jenkins流水线(pipeline)实战之:从部署到体验

    关于Jenkins流水线(pipeline) Jenkins 流水线 (pipeline) 是一套插件,让Jenkins可以实现持续交付管道的落地和实施. 关于blueocean Blue Ocean ...

  2. Kurento实战之一:KMS部署和体验

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. Ubuntu部署python3.5的开发和运行环境

    Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python ...

  4. 第一篇 UEditor入门部署和体验

    UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. UEditor富文本编辑器,轻量, ...

  5. Ubuntu部署python3.7的开发和运行环境

    Ubuntu部署python3.7的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用 python3.7.1) ,之前的云主机的的默认python版本都面临 ...

  6. Ubuntu 部署 nginx

    Ubuntu 部署 nginx  apt-get install nginx

  7. 阿里云Ubuntu部署java web - 文件夹

    文件夹(点击章节标题阅读): 阿里云Ubuntu部署java web(1) - 系统配置         ssh链接server(使用终端远程链接)        加入用户        给用户赋予运 ...

  8. Ubuntu部署jmeter

    一:ubuntu部署jdk 1:先下载jdk-8u74-linux-x64.tar.gz,上传到服务器,这里上传文件用到了ubuntu 下的 lrzsz. ubuntu下直接执行 sudo apt-g ...

  9. ubuntu部署django详细教程

    教程使用的软件版本:Ubuntu 18.04.1 LTS,django2.0,Python 3.6.5.nginx-1.13.7.uWSGI (2.0.17.1),Ubuntu是纯净的,全新的.下面我 ...

随机推荐

  1. session 机制和 httpsession 详解 (转载)

    https://www.cnblogs.com/bjanzhuo/archive/2013/02/27/3575884.html 一.术语session 在我的经验里,session这个词被滥用的程度 ...

  2. Unity图文混排

    http://blog.csdn.net/akof1314/article/details/49028279 http://blog.csdn.net/akof1314/article/details ...

  3. ios bug 分析

    ios中线上或者内部测试bug统计收集有两种方法: 1)使用第三方bug收集 1.bugHD 来源http://bughd.com/doc/ios-customize 2.bugtags 来源http ...

  4. CTF线下awd攻防文件监控脚本

    CTF线下awd攻防赛中常用一个文件监控脚本来保护文件,但是就博主对于该脚本的审计分析 发现如下的问题: 1.记录文件的路径未修改导致log暴露原文件备份文件夹:drops_JWI96TY7ZKNMQ ...

  5. 15_Web框架-mini frame

    1.WSGI协议概述(Python Web Server Gateway Interface) 1.WSGI允许开发者将选择web框架和web服务器分开,可以混合匹配web服务器和web框架,选择一个 ...

  6. nginx 启动报错“var/run/nginx/nginx.pid" no such file or directory

    nginx 启动报错“var/run/nginx/nginx.pid" no such file or directory 今天刚搭建的nginx服务器启动时,报错“var/run/ngin ...

  7. Activiti7 zip部署,查询及其删除

    zip部署 package com.itheima.activiti; import org.activiti.engine.ProcessEngine; import org.activiti.en ...

  8. Oracle12C配置对外访问

    Oracle12C配置对外访问 第一步: 开放端口或者关闭防火墙 第二步: 配置Oracle net manager打开Net manager 修改为共享服务器 第三步: 配置连接数打开Databas ...

  9. Linux:nginx基础

    一..简单介绍 nginx时开源的www服务器,只能解析静态的网页(html,js,css等),具有静态小文件高并发特性. 可做web服务器.负载均衡.web cache(web缓存) 优点: 1.高 ...

  10. web网站——nginx,LNMP部署03

    nginx功能: (1)web服务器: 默认网页目录为:/usr/share/nginx/html (2)反向代理服务器: nginx代替客户端访问后端服务器,后端服务器只知道是nginx的请求,并将 ...