使用 Nexus3 搭建 Maven 私服

一 介绍与安装

1.1 简介

Nexus是一个强大的maven仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。
Nexus是一套开箱即用的系统不需要数据库,它使用文件系统加Lucene来组织数据。
Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过IDEA和Eclipse集成使用。
Nexus支持webDAV与LDAP安全身份认证。
Nexus提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,占用较少的内存,基于简单文件系统而非数据库。

1.2 nexus 优点

  • 节省外网带宽。
  • 加速Maven构建。
  • 部署第三方构件。
  • 提高稳定性,增强控制。
  • 降低中央仓库的负荷。
  • 控制和审计
  • 建立本地内部公用仓库

1.3 下载

官网地址:https://www.sonatype.com/
官网下载地址:https://www.sonatype.com/download-nexus-repo-oss
个人CSDN资源下载地址:https://download.csdn.net/download/lovelichao12/37689938
版本/收费/免费:Nexus Repository Manager 仓库管理有2个版本,专业版和oss版,oss版是免费的,专业版是收费的,我们使用oss版。

1.4 安装

1.4.1 Windows上安装Nexus3

(1)下载后解压,如图:

(2)进入nexus-3.19.1-01-win64\bin目录,内容如下:

nexus.vmoptions为配置文件,可根据机器修改其中配置(可选 )

(3)进入nexus-3.19.1-01-win64\nexus-3.19.1-01\etc目录,内容如下:

(4)nexus-default.properties为配置文件,可根据机器修改其中配置(可选 )

默认端口是8081,可自行修改。

(5)安装服务

在bin目录下,以管理员权限打开cmd,执行命令 nexus.exe /install,不填服务名默认为 nexus

(6)启动服务

在bin目录下,以管理员权限打开cmd,执行命令 nexus.exe /run 

(7)登录Nexus3

浏览器输入localhost:port(port为修改后的端口号,未修改默认8081)

 (8)点击登陆,输入账号密码

账号默认为admin,密码网上说的admin123在此版本中过时,官网说明。

进入nexus-3.19.1-01-win64\sonatype-work\nexus3找到admin.password文件,使用其中的密码登录。

1.4.2 Centos7上安装Nexus3

(1)上传安装包到指定目录,然后解压,内容如下:

(2)其他操作如以上windows,修改空间大小,修改端口号等。

(3)进入bin目录,给nexus添加执行权限

chmod 777 nexus

(4)启动命令

./nexus start   启动

./nexus restart 重启

./nexus stop 停止

(5)登录nexus

登录访问如以上windows,不在重复撰写。

二 Nexus仓库类型介绍

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

三 自定义相关仓库

3.1 Blobstore 简介

Blobstore是位于SPDK bdev之上的Blob管理层,支持更上层的服务,如数据库MySQL、K-V存储引擎Rocksdb以及分布式存储系统Ceph、Cassandra等。
在Blobstore下层,与SPDK bdev层对接。SPDK bdev层,是对底层不同类型设备的统一抽象管理,例如NVMe bdev、Malloc bdev、AIO bdev等。bloblstore通过bdev提供驱动接口来进行数据持久化,比如我向blob中写入数据,blob就会将数据存入绑定的bdev 设备NVMe SSD的

3.2 创建Blobstore

 

 type 选择 File,name 起个自己定义的名字,path 添加一个自定义目录,用于存储下载的依赖包,如果不新建Blobstore,默认是存在 sonatype-work/nexus3/blobs/default 目录中。

3.3 创建自定义仓库

 

四 本地关联私服配置

4.1 setting.xml 添加配置

    <server>
      <id>nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <mirror>
      <id>my-repository</id>
      <mirrorOf>*</mirrorOf>
      <name>my-repository</name>
      <url>http://172.16.20.101:9200/repository/maven-public/</url>
    </mirror>

配置认证和仓库信息,找到mavne中 setting.xml 文件,添加如上配置即可。

五 本地仓库批量导入私服

 5.1 创建脚本

创建一个一个名为:mavenimport.sh 脚本,内容如下,放入本地仓库中,如:repository目录下。

#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":r:u:p:" opt; do
	case $opt in
		r) REPO_URL="$OPTARG"
		;;
		u) USERNAME="$OPTARG"
		;;
		p) PASSWORD="$OPTARG"
		;;
	esac
done
 
find . -type f -not -path './mavenimport\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' | sed "s|^\./||" | xargs -I '{}' curl -u "$USERNAME:$PASSWORD" -X PUT -v -T {} ${REPO_URL}/{} ;

5.2 执行脚本

本地电脑需要安装客户端Git,通过Git命令执行命令

./mavenimport.sh -u admin -p admin123 -r http://172.16.20.101:9200/repository/my-repository/

六 上传项目jar到私服

当我们开发公共模块,这些公共模块需要公司其他小伙伴来使用,我们就可以将这些jar通过maven来管理,那么我们可以将公共模块打成jar上传到nexus3私服中。

修改mavne setting.xml配置文件。

    <server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

修改pom.xml文件,配置上传私服信息。

 七 上传特定jar包到私服

八 下载jar包模块配置

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十点摆码

有用你就打赏一下

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值