Maven和Nexus

1 Nexus介绍

对maven来说仓库分为两类:本地仓库和远程仓库,有三种专门的Maven仓库管理软件可以用来帮助我们建立私服:chiva、Artifactory和Nexus。Nexus是当前最流行的Maven仓库管理软件。Nexus包含了各种类型的仓库的概念,包括代理仓库、宿主仓库、仓库组等。每一种仓库都提供了丰富实用的配置参数,方便用户根据需要进行定制。

2 Nexus安装部署

2.1 官网下载地址

https://www.sonatype.com/download-oss-sonatype

2.X版本下载地址:https://help.sonatype.com/repomanager2/download

3.X版本下载地址:https://help.sonatype.com/repomanager3/download

2.2 部署Nexus

  1. PS:内存推荐4G或以上,太小会导致无法启动
  2. 还有一点就是nexus是基于java开发的,所以需要jdk1.8以上版本
  3. #1、上传JDK并解压缩:
  4. tar xf jdk-8u241-linux-x64.tar.gz
  5. #2、配置环境变量
  6. vim /etc/profile
  7. export JAVA_HOME=/usr/local/jdk1.8.0_241
  8. export PATH=$PATH:$JAVA_HOME/bin
  9. #3、使配置文件生效:
  10. source /etc/profile
  11. #4、查看JDK版本,确认是否安装成功
  12. java -version
  13. java version "1.8.0_241"
  14. Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
  15. Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
  16. #5、下载nexus
  17. [root@nexus-70 ~]# cd /usr/local/src/
  18. [root@nexus-70 src]# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
  19. #6、解压
  20. [root@nexus-70 src]# tar xf nexus-3.19.1-01-unix.tar.gz
  21. #7、软连接
  22. [root@nexus-70 src]# ln -s /usr/local/src/nexus-3.19.1-01 /usr/local/nexus
  23. #8、配置文件详解
  24. [root@nexus-70 nexus]# cat /usr/local/nexus/etc/nexus-default.properties
  25. ## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
  26. ##
  27. # Jetty section
  28. application-port=8081
  29. application-host=0.0.0.0
  30. nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
  31. nexus-context-path=/
  32. # Nexus section
  33. nexus-edition=nexus-pro-edition
  34. nexus-features=\
  35. nexus-pro-feature
  36. nexus.hazelcast.discovery.isEnabled=true
  37. #9、配置启动用户并启动
  38. 经测试,使用root启动问题还挺多的,这里添加nexus用户启动
  39. [root@nexus-70 nexus]# useradd nexus
  40. [root@nexus-70 nexus]# chown -R nexus:nexus /usr/local/nexus/
  41. [root@nexus-70 nexus]# chown -R nexus:nexus /usr/local/src/sonatype-work/
  42. [root@nexus-70 nexus]# su - nexus
  43. [nexus@nexus-70 ~]$ cd /usr/local/nexus/
  44. [nexus@nexus-70 nexus]$ nohup ./bin/nexus run > ./nexus.log 2>&1 &

访问页面http://IP:8081

20200325151515932.png

2.3 设置向导

image-20210919095637311.png

image-20210919095739914.png

点击登入会提示你输入用户名和密码,用户名是admin,密码在/usr/local/src/sonatype-work/nexus3/admin.password

  1. [root@nexus-70 ~]# cat /usr/local/src/sonatype-work/nexus3/admin.password
  2. 03da5af7-e9a5-4f06-a2e5-1fd39f378e8e

image-20210919095858609.png

image-20210919095912747.png

image-20210919095950438.png

image-20210919100041853.png

image-20210919100054127.png

到这里向导就配置好了

2.4 nexus中的仓库概念

  1. Hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第三方仓库
  2. Proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库
  3. Group:仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

2.5 使用nexus构件私有yum仓库

2.5.1 nexus仓库配置

通过nexus作为公司内网yum仓库,通过华为镜像源

https://repo.huaweicloud.com/centos/7.9.2009/os/x86_64/

image-20210919101607674.png

image-20210919102202285.png

image-20210919102337401.png

2.5.2 在centos7中配置yum仓库地址

  1. [root@nexus-70 yum.repos.d]# cat centos.repo
  2. [centos7]
  3. name=centos7
  4. baseurl=http://10.0.0.70:8081/repository/kaizhi/ #这个地址在之前创建的仓库中看到
  5. enabled=1
  6. gpgcheck=0

2.5.3 安装httpd

  1. [root@nexus-70 yum.repos.d]# yum install httpd -y

安装好之后,就可以在nexus当中看到我们之前安装httpd下来的缓存文件

image-20210919105521285.png

2.6 修改nexus数据目录

将nexus的数据目录设置为/data

2.6.1 nexus配置

  1. #先创建/data目录,并授权
  2. [root@nexus-70 yum.repos.d]# mkdir -p /data
  3. [root@nexus-70 yum.repos.d]# chown nexus:nexus /data/

image-20210919105706618.png

image-20210919105756097.png

然后保存即可

2.6.2查看产生的数据

  1. [root@nexus-70 yum.repos.d]# cd /data/
  2. [root@nexus-70 data]# ls
  3. B4BC072C-9DA3A6DE-72534FA9-F2193DFC-30DA9123-deletions.index B4BC072C-9DA3A6DE-72534FA9-F2193DFC-30DA9123-metrics.properties content metadata.properties

2.7 nexus数据备份

Nexus中普通数据信息和元数据是分开存储的,普通数据是保存在blob中,而元数据保存在数据库中,所以在备份的时候必须同时进行备份普通数据和元数据,才能在后期恢复数据的时候保证数据的最终完整性。

  1. blob数据:普通数据信息在Nexus中是保存在bolb中的,所以此部分数据必须进行备份,blob的典型配置中,此目录对应着nexus的数据目录的blobs子目录。
  2. 元数据:元数据在nexus中是在数据库中进行保存的,为了保存数据的完整性,nexus需要同时将数据库中的数据进行导出和备份

2.7.1 nexus备份配置

2.7.1.1 添加存储用于保存备份数据
  1. #先创建备份目录
  2. [root@nexus-70 ~]# mkdir -p /backup/nexus
  3. [root@nexus-70 ~]# chown -R nexus:nexus /backup/nexus/

image-20210919110941850.png

image-20210919111036838.png

image-20210919111104188.png

2.7.1.2 nexus blob备份计划任务

image-20210919111231503.png

image-20210919111318442.png

image-20210919111423430.png

image-20210919111542265.png

2.7.1.3 nexus元数据备份计划任务
  1. #一样,先创建备份目录
  2. [root@nexus-70 ~]# mkdir -p /backup/yuan/
  3. [root@nexus-70 ~]# chown -R nexus:nexus /backup/yuan/

image-20210919111723721.png

任务配置:

image-20210919112001605.png

创建好的两个备份任务

image-20210919112028654.png