nexus(Maven仓库私服)的安装、配置、使用和仓库迁移

2023-11-15

简介

Nexus下载:点击进入
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。

Nexus安装

安装环境:操作系统:Linux(以CentOS为例)
将压缩包解压到/usr目录下,nexus里面有2个文件夹,第一个文件夹是核心文件,第二个文件夹用来存储下载下来的jar:
这里写图片描述
这里写图片描述
修改端口,进入nexus/nexubs-2.13.0-01/conf目录下,编辑nexus.properties文件,命令:vim nexus.properties
这里写图片描述
这里写图片描述
启动nexus,进入nexus/nexubs-2.13.0-01/bin目录
这里写图片描述
运行命令:./nexus //可以查看有那些运行命令
这里写图片描述
运行命令:./nexus start //启动nexus
这里写图片描述
注意:可能会报错,报上面错误时:需要修改运行的用户,修改运行文件 nexus,命令:vim nexus,将RUN_AS_USER修改为root;
这里写图片描述

这里写图片描述
保存之后,再次启动nexus,运行命令:./nexus start
这里写图片描述
查看nexus 控制台,命令:./nexus console
这里写图片描述
在浏览器进行访问。地址:http://ip:端口/nexus
这里写图片描述
在网页上的右上角进行登录,默认用户名:admin,密码:admin123


nexus的使用

常用功能:
Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。
开启Nexus服务后访问url地址http://localhost:8081/nexus/(推荐使用自己的ip地址),之后登录系统,用户名密码分别是:admin/admin123.
最频繁的就是点击左侧菜单栏的Repositories按钮
这里写图片描述
一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。

  • hosted 类型的仓库,内部项目的发布仓库
  • releases内部的模块中release模块的发布仓库
  • snapshots发布内部的SNAPSHOT模块的仓库
  • 3rd party第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去
  • proxy 类型的仓库,从远程中央仓库中寻找数据的仓库
  • group 类型的仓库,组仓库用来方便我们开发人员进行设置的仓库

maven项目索引
下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能
这里写图片描述
保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。例如spring-core
这里写图片描述
就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息指定仓库

<repositories>  
    <repository>  
        <id>nexus</id>  
        <name>nexus</name>             <url>http://xxx:8081/nexus/content/groups/public/</url>  
        <releases>  
            <enabled>true</enabled>  
        </releases>  
        <snapshots>  
            <enabled>true</enabled>  
        </snapshots>  
    </repository>  
</repositories> 

指定插件仓库

<pluginRepositories>  
    <pluginRepository>  
        <id>nexus</id>  
        <name>nexus</name>        <url>http://192.168.1.103:8081/nexus/content/groups/public/</url>  
        <releases>  
            <enabled>true</enabled>  
        </releases>  
        <snapshots>  
            <enabled>true</enabled>  
        </snapshots>  
    </pluginRepository>  
</pluginRepositories> 

这样只有本项目才在私服下载组件
这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。

修改settings.xml为
这里写图片描述

追加激活profile

<activeProfiles>  
    <activeProfile>central</activeProfile>        
</activeProfiles>  

之后所有本机的Maven项目就在私服下载组件。(这样比较好)

项目的发布

<distributionManagement>  
    <repository>  
        <id>user-release</id>  
        <name>User Project Release</name>        <url>http://192.168.1.103:8081/nexus/content/repositories/releases/</url>  
    </repository>  
    <snapshotRepository>  
        <id>user-snapshots</id>  
        <name>User Project SNAPSHOTS</name>    <url>http://192.168.1.103:8081/nexus/content/repositories/snapshots/</url>  
    </snapshotRepository>  
</distributionManagement>

注意配置了还是发布项目到私服失败,原因为没有权限
配置权限在settings.xml
这里写图片描述
这里写图片描述
然后运行发布
clean deploy
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
这里写图片描述

宿主库——3rd party
假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间。
这里写图片描述
这里写图片描述
最后点击上传
这里写图片描述


索引更新和仓库迁移

索引好比目录,只有有了索引,才能根据索引去仓库下载需要的构件jar包。由于中央仓库向全世界提供下载服务,有很多构件,其索引文件也很大,大概1G左右。

更新索引方式有两种

  1. 在线更新索引
    安装配置完成Nexus后,电脑联网状态下,Nexus会自动下载索引文件。下载好的索引文件存放在目录:sonatype-work\nexus\indexer
  2. 手动更新索引
    网络环境不佳,或者在线更新有问题时,可以选择手动添加索引方式。
    首先准备这几个文件:
    这里写图片描述
    http://repo.maven.apache.org/maven2/.index/页面下载下面这两个文件,如图所示文件:
    这里写图片描述
    http://search.maven.org,搜索g:”org.apache.maven.indexer” AND a:”indexer-cli”下载特定解压文
    indexer-cli-5.1.1.jar,如下图:
    这里写图片描述
    把这几个文件放在同一个文件路径下面,从cmd进入到这个路径里,输入命令:
$ java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer 

执行完之后,把indexer文件夹下的所有内容都复制到%nexus-home%\sonatype-work\nexus\indexer\central-ctx下面。
重新启动nexus,进入管理界面,选择central->Browse Index,就看到更新的索引了。
注意:nexus是需要重新启动的,我是在做上面的所有步骤之前,先停掉nexus,等上面四个步骤完成之后,再启动nexus的。

仓库迁移
Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由nexus/conf/nexus.properties配置文件指定。
仓库迁移需要两个过程:备份和还原

  • 备份仓库:将sonatype-work文件夹整体备份即可,也可以选择只备份最重要的两个文件夹索引(indexer)和仓库(storage)

  • 还原仓库:将备份好的sonatype-work文件拷贝到新的服务器中。然后修改nexus/conf/nexus.properties配置文件,重新指定仓库的目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nexus(Maven仓库私服)的安装、配置、使用和仓库迁移 的相关文章

随机推荐

  • IIS搭建本地电脑服务器:通过内网穿透技术实现公网访问的步骤指南

    1 前言 在网上各种教程和介绍中 搭建网页都会借助各种软件的帮助 比如网页运行的Apache和Nginx 数据库软件MySQL和MSSQL之类 为方便用户使用 还出现了XAMPP PHPStudy 宝塔面板等等一系列集成服务 都是为了方便我
  • 接口测试常用工具(转)

    原文地址 https my oschina net hellotest blog 662347 Poster 这是火狐浏览器的一个插件 如果你想调试服务器 发出HTTP请求 Poster操作简单 你先设定一个内容类型 数分钟内 你将拥有需要
  • 如果后端API一次返回10万条数据,前端应该如何处理?

    英文 https medium com frontend canteen if the backend api returns 100 000 records at one time how should we handle it in t
  • JavaScript操作cookie实现记住用户名密码功能(一)

    JavaScript操作cookie实现记住用户名密码功能 一 之前说的删除cookie哪里找到解决办法了 就是直接调用setCookie cname cvalue 1 传值的时候时间传入 1 就是前一天就可以了 由来简述 最近一段时间在使
  • python-全排列

    python 全排列 permutations itertools permutations iterable r None 返回由 iterable序列中的元素生成的长度为r的排列 r默认设置为 iterable 的长度 如果有相同的元素
  • 什么是SSC(扩频时钟)?

    SSC全称Spread Spectrum Clocking 即扩频时钟 由于信号的辐射主要是由于信号的能量过于集中在其载波频率位置 导致信号的能量在某一频点位置处的产生过大的辐射发射 因此为了进一步有效的降低EMI辐射 芯片厂家在设计芯片时
  • spark学习8:spark SQL

    1 spark SQL是什么 spark SQL类似 hive 的功能 hive 是把SQL转译成 查询hadoop的语法 而spark SQL是把 SQL转译成 查询spark的语法 并且 spark SQL的前身 shark 也叫hiv
  • ESP8266_01与Arduino连接串口乱码问题(参考多个论坛和http://wenku.baidu.com/view/6cb6a96bb7360b4c2e3f64b2.html解决)

    Arduino uno的默认波特率为9600 ESP8266 01的波特率默认为115200 通过串口输出时会出现乱码 Arduino测试程序 由于uno串口只有连个 所以测试的时候选择2 3作为软串口使用 include
  • AIX下打tar包及压缩

    AIX下打tar包及压缩为gz格式 1 打tar包 tar cvf XXX XX tar XXX XX ls 下发现多了XXX XX tar文件 2 压缩为gz格式 gzip XXX XX tar ls 发现XXX XX tar变成了XXX
  • android 点击查看大图

    转载自 https www cnblogs com yoyohong p 7264946 html 仅供参考 1 使用方式 Intent intent new Intent FriendCircleActivity this ImageGr
  • Linux中的各种符号,*,$,-,--?

    点 隐藏文件 一个点 指向当前目录 两个点 指向当前目录的上级目录 相对路径的写法 说明是一个变量 PATH linux环境变量 通配符 当前用户的家目录 每个用户的家目录是不同的 root用户的家目录在系统根目录下 其他用户的家目录在 h
  • Power bi 4.6 聚类图

    关注微信公共号 小程在线 关注CSDN博客 程志伟的博客 数据集链接见微信公共号底端 1 在Power BI中导入可视化效果 点击 选择导入自定义视觉对象 点击导入 2 选择我们需要导入的视觉对象 3 在可视化就会出现新的图形 4 导入 D
  • A Tour of Computer Systems

    1 1 Information is Bits Context All information in a system is represented as a bunch of bits The only thing that distin
  • 图片从base64编码转换为jpg文件

    1 使用网站 注意在base64编码前加上 data image png base64 http tool chinaz com tools imgtobase 2 转换的代码 package com test import java io
  • 牛逼!Windows竟然也能运行QEMU虚拟机!

    这些天研究 Miracast 又倒腾了开发用的虚拟机 但是发现了新的东西就是 QEMU 全宇宙最强的硬件模拟器 原来这玩意可以在Windows上跑虚拟机的 环境部署 msys2 mingw w64 qemu 系统iso Hyper V 代替
  • linux排序文件命令,Linux文件排序工具 sort 命令详解

    本文目录 1 1 选项说明 1 2 sort示例 1 3 深入研究sort sort是排序工具 它完美贯彻了Unix哲学 只做一件事 并做到完美 它的排序功能极强 极完整 只要文件中的数据足够规则 它几乎可以排出所有想要的排序结果 是一个非
  • (七) carla真实世界坐标系与全局俯视地图像素坐标系变换

    七 carla真实世界坐标系与全局俯视地图像素坐标系变换 问题陈述 下图为 c a r l a carla carla 中 T
  • 常见排序算法之归并排序——归并排序

    哈喽大家好 我是保护小周 本期为大家带来的是常见排序算法中的归并排序 博主在这里先分享归并排序的递归算法 包您一看就会 快来试试吧 目录 一 归并排序 1 1 基本思想 1 2 算法思想 1 3 程序设计思想 1 4 程序实现 1 5 归并
  • SQL日期函数

    一 知识点 在SQL中 由于不能直接执行算术函数 所以日期函数在SQL就十分有用 日期函数拥有多个方法 每个方法都可以对日期进行查改或计算 比如 GETDATE 方法 获取当前的系统日期 DATEADD 日期部分 number date 返
  • nexus(Maven仓库私服)的安装、配置、使用和仓库迁移

    简介 Nexus下载 点击进入 Nexus 是Maven仓库管理器 如果你使用Maven 你可以从Maven中央仓库 下载所需要的构件 artifact 但这通常不是一个好的做法 你应该在本地架设一个Maven仓库服务器 在代理远程仓库的同