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/profile
export JAVA_HOME=/usr/local/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
#3、使配置文件生效:
source /etc/profile
#4、查看JDK版本,确认是否安装成功
java -version
java 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 section
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/
# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
nexus.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.password
03da5af7-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=centos7
baseurl=http://10.0.0.70:8081/repository/kaizhi/ #这个地址在之前创建的仓库中看到
enabled=1
gpgcheck=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]# ls
B4BC072C-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/
任务配置:
创建好的两个备份任务