什么是Nexus

Nexus是一个强大的Maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。

运行原理

本地仓库与私服处在同一个局域网中,当本地仓库没有资源时,会向私服发起请求获取资源(同一个局域网,下载网速快)。如果私服上没有资源,再向远程仓库下载资源。
当开发人员开发项目时,已经将所有依赖的资源通过私服下载下来后,有新同事来了,只需要将maven配置连接到私服,就不需要从远程仓库下载,从而节约了宽带和下载时间。

在本地构建nexus私服的好处

1)加速构建;
2)节省带宽;
3)节省中央maven仓库的带宽;
4)稳定(应付一旦中央服务器出问题的情况);
5)控制和审计;
6)能够部署第三方构件;
7)可以建立本地内部仓库;
8)可以建立公共仓库

测试环境:一台IP为192.168.2.20的虚拟机

一、下载文件并解压

tar -zxvf nexus-3.3.2-02-unix.tar.gz

二、修改配置文件

vim nexus-3.3.2-02/etc/nexus-default.properties
application-port=8081
application-host=192.168.2.20
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/nexus # Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature
vim nexus-3.3.2-02/bin/nexus.rc
run_as_user=root

三、启动

nexus-3.3.2-02/bin/nexus start

访问http://192.168.2.20:8081/nexus
安装成功后有两个默认账号admin、anonymous,其中admin具有全部权限默认密码admin123;anonymous作为匿名用户,只具有查看权限。

四、Nexus配置说明

点击【Browse】下的【Components】,如图

1.maven库名称说明

1)maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
2)maven-releases:私库发行版jar
3)maven-snapshots:私库快照(调试版本)jar
4)maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。

2.maven库类型说明

1)group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库
2)hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库)
3)proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage Location属性的值即被代理的远程仓库的路径)
4)virtual(虚拟类型):虚拟仓库(这个基本用不到,重点关注上面三个仓库的使用)

五、连接私服(从nexus服务器上下载jar资源)

修改maven的setting.xml文件

<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
<!-- 表示maven从指定的url服务器中获取jar资源 -->
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.2.20:8081/nexus/repository/maven-public/</url>
</mirror>
之后在项目中的pom.xml中添加jar包依赖,如果本地仓库没有该jar包资源,那么maven就会请求到nexus服务器获取jar包。

六、发布项目(将本地jar包上传到nexus中)

修改maven的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文件配置

<repositories>
<repository>
<id>maven-central</id>
<name>maven-central</name>
<url>http://192.168.2.20:8081/nexus/repository/maven-central/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<distributionManagement>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshots</name>
<url>http://192.168.2.20:8081/nexus/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>releases</id>
<name>Nexus releases</name>
<url>http://192.168.2.20:8081/nexus/repository/maven-releases/</url>
</repository>
</distributionManagement>
注意:上边的id值需要与setting.xml文件中的id值一致
如果要发布SNAPSHOT版本,项目version的值加上-SNAPSHOT,jar包会发布到maven-snapshots
如果要发布RELEASES版本,去掉项目中version的SNAPSHOT,jar包会发布到maven-releases
本次测试以发布SNAPSHOT版本为例:





Nexus搭建私服的更多相关文章

  1. Nexus搭建私服 学习

    为什么要搭建nexus私服 因为有些公司不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以,有必要再局域网里找一台有外网权限的机器.搭建nexus私服,然后开发人员连接到这台私服 ...

  2. 使用 Nexus 搭建私服仓库时我犯的一个小错误

    私服搭建好,啥都配置好了,纳闷的是 Repositories 中的 group 为何总是空值?我还反反复复删了又重建,结果还是一样,不经意间再看 Configuration 选项卡的内容,发现左右两个 ...

  3. Maven学习 (四) 使用Nexus搭建Maven私服

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

  4. Maven-004-使用 Nexus 搭建 maven 私服

    从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...

  5. Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...

  6. Maven——使用Nexus搭建Maven私服

    原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...

  7. 使用nexus搭建maven仓库(本地私服)

    我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/repository文件夹下).如果公司内部搭了一个 ...

  8. Maven入门指南⑤:使用Nexus搭建Maven私服

    1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...

  9. centos7搭建nexus maven私服

    前置条件: 1.安装jdk,可参考 http://www.cnblogs.com/grey-wolf/p/6480489.html 2.nexus仓库管理器,分为两个版本,Nexus Reposito ...

随机推荐

  1. 1-27 sed基本编程和cut基本应用

    大纲: 一.sed基本编程 sed详解.Usage.操作实例 二.cut命令应用 cut命令详解.Usage.操作实例 ######################################## ...

  2. iptables详解(12):iptables动作总结之一

    前文一直在介绍iptables的匹配条件,并没有对动作进行过总结,那么此处,我们就来总结一下iptables中的动作. 之前的举例中已经用到了一些常用动作,比如ACCEPT.DROP.REJECT等. ...

  3. taskset -pc PID 查看线程占用cpu核

    taskset -pc  PID 可以用于 查看 当前线程 对应绑定的 在 哪个核上面. 这个 可以用于 程序优化, 查看 哪个线程占用的 cpu 比重比较高 首先 可以通过  top  -H   - ...

  4. SQL 添加字段

    制定添加在那个字段后面 ALTER TABLE `szq`.`org_sales_daily` ADD COLUMN `trade_id_onl_count` int(11) NOT NULL DEF ...

  5. Java进阶4表达式中的陷阱

    Java进阶4表达式中的陷阱 20131103 表达式是Java中最基本的组成单元,各种表达式是Java程序员最司空见惯的内容,Java中的表达式并不是十分的复杂,但是也有一些陷阱.例如当程序中使用算 ...

  6. inotify的搭建,

    在安装inotify之前我们要先安装云yum源 然后安装inotify的工具 命令 yum -y install inotify-tools 安装了以后会有两个命令: inotifywait:在被监控 ...

  7. log4cpp第一个程序HelloWord

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  8. 【移动互联网开发】Zepto 使用中的一些注意点 【转】

    前段时间完成了公司一个产品的 HTML5 触屏版,开发中使用了 Zepto 这个著名的 DOM 操作库. 为什么不是 jQuery 呢?因为 jQuery 的目标是兼容所有主流浏览器,这就意味着它的大 ...

  9. 转载-lvs官方文档-Linux服务器集群系统(二)

    Linux服务器集群系统(二) LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 2002 年 4 月 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并 ...

  10. iOS笔记之内存泄露

    非ARC中,对于被autorelease的对象,Leak工具也会视其为泄露,自己知道没问题就行. 今天遇到一个bug,App在XCode调试时没有问题,但在真机安装,退出,再进入时,会出现闪退. 用X ...