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
PS:内存推荐4G或以上,太小会导致无法启动还有一点就是nexus是基于java开发的,所以需要jdk1.8以上版本#1、上传JDK并解压缩:tar xf jdk-8u241-linux-x64.tar.gz#2、配置环境变量vim /etc/profileexport JAVA_HOME=/usr/local/jdk1.8.0_241export PATH=$PATH:$JAVA_HOME/bin#3、使配置文件生效:source /etc/profile#4、查看JDK版本,确认是否安装成功java -versionjava version "1.8.0_241"Java(TM) SE Runtime Environment (build 1.8.0_241-b07)Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)#5、下载nexus[root@nexus-70 ~]# cd /usr/local/src/[root@nexus-70 src]# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz#6、解压[root@nexus-70 src]# tar xf nexus-3.19.1-01-unix.tar.gz#7、软连接[root@nexus-70 src]# ln -s /usr/local/src/nexus-3.19.1-01 /usr/local/nexus#8、配置文件详解[root@nexus-70 nexus]# cat /usr/local/nexus/etc/nexus-default.properties## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties### Jetty sectionapplication-port=8081application-host=0.0.0.0nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xmlnexus-context-path=/# Nexus sectionnexus-edition=nexus-pro-editionnexus-features=\nexus-pro-featurenexus.hazelcast.discovery.isEnabled=true#9、配置启动用户并启动经测试,使用root启动问题还挺多的,这里添加nexus用户启动[root@nexus-70 nexus]# useradd nexus[root@nexus-70 nexus]# chown -R nexus:nexus /usr/local/nexus/[root@nexus-70 nexus]# chown -R nexus:nexus /usr/local/src/sonatype-work/[root@nexus-70 nexus]# su - nexus[nexus@nexus-70 ~]$ cd /usr/local/nexus/[nexus@nexus-70 nexus]$ nohup ./bin/nexus run > ./nexus.log 2>&1 &
访问页面http://IP:8081

2.3 设置向导


点击登入会提示你输入用户名和密码,用户名是admin,密码在/usr/local/src/sonatype-work/nexus3/admin.password
[root@nexus-70 ~]# cat /usr/local/src/sonatype-work/nexus3/admin.password03da5af7-e9a5-4f06-a2e5-1fd39f378e8e





到这里向导就配置好了
2.4 nexus中的仓库概念
Hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第三方仓库Proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库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/



2.5.2 在centos7中配置yum仓库地址
[root@nexus-70 yum.repos.d]# cat centos.repo[centos7]name=centos7baseurl=http://10.0.0.70:8081/repository/kaizhi/ #这个地址在之前创建的仓库中看到enabled=1gpgcheck=0
2.5.3 安装httpd
[root@nexus-70 yum.repos.d]# yum install httpd -y
安装好之后,就可以在nexus当中看到我们之前安装httpd下来的缓存文件

2.6 修改nexus数据目录
将nexus的数据目录设置为/data
2.6.1 nexus配置
#先创建/data目录,并授权[root@nexus-70 yum.repos.d]# mkdir -p /data[root@nexus-70 yum.repos.d]# chown nexus:nexus /data/


然后保存即可
2.6.2查看产生的数据
[root@nexus-70 yum.repos.d]# cd /data/[root@nexus-70 data]# lsB4BC072C-9DA3A6DE-72534FA9-F2193DFC-30DA9123-deletions.index B4BC072C-9DA3A6DE-72534FA9-F2193DFC-30DA9123-metrics.properties content metadata.properties
2.7 nexus数据备份
Nexus中普通数据信息和元数据是分开存储的,普通数据是保存在blob中,而元数据保存在数据库中,所以在备份的时候必须同时进行备份普通数据和元数据,才能在后期恢复数据的时候保证数据的最终完整性。
blob数据:普通数据信息在Nexus中是保存在bolb中的,所以此部分数据必须进行备份,blob的典型配置中,此目录对应着nexus的数据目录的blobs子目录。元数据:元数据在nexus中是在数据库中进行保存的,为了保存数据的完整性,nexus需要同时将数据库中的数据进行导出和备份
2.7.1 nexus备份配置
2.7.1.1 添加存储用于保存备份数据
#先创建备份目录[root@nexus-70 ~]# mkdir -p /backup/nexus[root@nexus-70 ~]# chown -R nexus:nexus /backup/nexus/



2.7.1.2 nexus blob备份计划任务




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

任务配置:

创建好的两个备份任务

