博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nexus(Maven仓库私服)的安装、配置、使用和仓库迁移
阅读量:5085 次
发布时间:2019-06-13

本文共 4836 字,大约阅读时间需要 16 分钟。

简介

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 
这里写图片描述

设置nexus为Linux系统的服务,并开机自动启动

1. 复制$NEXUS_HOME/bin/jsw/linux-x86-64/nexus 到/etc/init.d/nexus

2. 授于nexus脚本有可执行的权限:

    chmod 755 /etc/init.d/nexus

3. 修改nexus文件,配置以下参数:

      a) 修改NEXUS_HOME 绝对路径,如:NEXUS_HOME="/usr/local/nexus"

      b) 设置RUN_AS_USER=nexus,或都其它的用户,前提是创建了此用户。

        NEXUS_HOME=/usr/local/nexus        PLATFORM=linux-x86-64        PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"        WRAPPER_CMD="${PLATFORM_DIR}/wrapper" WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf" PIDDIR="${NEXUS_HOME}"

4. Red Hat, Fedora, CentOS增加nexus服务:       

    cd /etc/init.d        chkconfig --add nexus        chkconfig --levels 345 nexus on        service nexus start        tail -f /usr/local/nexus/logs/wrapper.log

Ubuntu and Debian增加nexus服务        

    cd /etc/init.d        update-rc.d nexus defaults        chkconfig --levels 345 nexus on        service nexus start        tail -f /usr/local/nexus/logs/wrapper.log

配置完成后,在浏览器进行访问。地址::端口/nexus 

这里写图片描述

在网页上的右上角进行登录,默认用户名:admin,密码:admin123 

nexus的使用

常用功能:

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。 
开启Nexus服务后访问url地址(推荐使用自己的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中配置相关私服信息指定仓库

nexus
nexus
http://xxx:8081/nexus/content/groups/public/
true
true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

指定插件仓库

nexus
nexus
http://192.168.1.103:8081/nexus/content/groups/public/
true
true

这样只有本项目才在私服下载组件 

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

修改settings.xml为 

这里写图片描述

追加激活profile

central

 

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

项目的发布

user-release
User Project Release
http://192.168.1.103:8081/nexus/content/repositories/releases/
user-snapshots
User Project SNAPSHOTS
http://192.168.1.103:8081/nexus/content/repositories/snapshots/

 

注意配置了还是发布项目到私服失败,原因为没有权限

配置权限在settings.xml
这里写图片描述
这里写图片描述
然后运行发布
clean deploy
在控制台发布成功
然后进入到私服上的仓库中,看一下确实存在刚刚发布的项目
这里写图片描述
宿主库——3rd party
假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间。 
这里写图片描述
这里写图片描述
最后点击上传
这里写图片描述 

索引更新和仓库迁移

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

更新索引方式有两种

  1. 在线更新索引 
    安装配置完成Nexus后,电脑联网状态下,Nexus会自动下载索引文件。下载好的索引文件存放在目录:sonatype-work\nexus\indexer
  2. 手动更新索引 
    网络环境不佳,或者在线更新有问题时,可以选择手动添加索引方式。 
    首先准备这几个文件: 
    这里写图片描述
    到页面下载下面这两个文件,如图所示文件: 
    这里写图片描述
    到,搜索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配置文件,重新指定仓库的目录。

转载于:https://www.cnblogs.com/shawhe/p/9468517.html

你可能感兴趣的文章
记一次Web服务的性能调优
查看>>
jQuery.form.js使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
shell中下载最新版本或指定版本的办法(Dockerfile 中通用)
查看>>
极客时间-左耳听风-程序员攻略-分布式架构工程设计
查看>>
akka之种子节点
查看>>
不知道做什么时
查看>>
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>