Nexus搭建私服
什么是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搭建私服的更多相关文章
- Nexus搭建私服 学习
为什么要搭建nexus私服 因为有些公司不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以,有必要再局域网里找一台有外网权限的机器.搭建nexus私服,然后开发人员连接到这台私服 ...
- 使用 Nexus 搭建私服仓库时我犯的一个小错误
私服搭建好,啥都配置好了,纳闷的是 Repositories 中的 group 为何总是空值?我还反反复复删了又重建,结果还是一样,不经意间再看 Configuration 选项卡的内容,发现左右两个 ...
- Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
- Maven-004-使用 Nexus 搭建 maven 私服
从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...
- Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服
1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...
- Maven——使用Nexus搭建Maven私服
原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...
- 使用nexus搭建maven仓库(本地私服)
我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/repository文件夹下).如果公司内部搭了一个 ...
- Maven入门指南⑤:使用Nexus搭建Maven私服
1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...
- centos7搭建nexus maven私服
前置条件: 1.安装jdk,可参考 http://www.cnblogs.com/grey-wolf/p/6480489.html 2.nexus仓库管理器,分为两个版本,Nexus Reposito ...
随机推荐
- PyCharm在win10的64位系统安装实例
搭建环境 1.win10_X64,其他Win版本也可以. 2.PyCharm版本:Professional-2016.2.3. 搭建准备 1.到PyCharm官网下载PyCharm安装包. 2.选择W ...
- vue 跨域
注意!只能在本地调试使用,上线后url会出错使用以下方法要先引入网络模块 先配置文件:config =>index.js以下部分改为:proxyTable: { '/apis': { // 测试 ...
- ExcelHelper.cs
using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; ...
- [sqlite] 数据库遇到的问题 “该字符串未被识别为有效的 DateTime”
异常详细信息: System.FormatException: 该字符串未被识别为有效的 DateTime. 解决方案: 在日期保存到Sqlite数据库时转换一个类型,比如:string _now = ...
- Git远程操作详解(新手必备)
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...
- PHP工作笔记:Yii2框架设置页面的关键词和描述
因为都是做系统,很少用到这个设置,标题也是自动生成的,我们公司网站也没有关键词和描述,这样不利于网站获取相关排名. 设置方式: 直接在视图层做如下设置 $this->title = " ...
- ArcGIS中标注转注记方法比较
[数据处理]ArcGIS中标注转注记方法比较 (2013-02-22 08:42:15) 转载▼ 标签: arcgis 标注 注记 label annotation 分类: 数据处理 1.概述 由于切 ...
- 一张图带你了解OKhttp框架
- APUE学习笔记——8.1-8.4 进程基础
进程ID 1 进程id是唯一的.(不会有进程id一样的两个进程) 2进程id是可复用的,一个进程销毁后,它的id号可以被新的进程使用.但是Unix采用了延迟复用的算法,也就是进程 销毁后它的id不 ...
- 20165202 2017-2018-2 《Java程序设计》第1周学习总结
20165202 2017-2018-2 <Java程序设计>第1周学习总结 教材学习内容总结 Ubuntu环境下安装JDK 简单Java程序编写 反编译器javap.exe Git安装及 ...