# Maven私服Nexus的搭建

## 私服存在的合理性

Maven中的依赖是从服务器仓库中下载的,Maven的仓库只有两大类:
- 1) 本地仓库
- 2) 远程仓库,其中在远程仓库中又分成了3种:中央仓库 、私服、其它公共库。

Maven用户直接连接远程仓库下载构件的做法是Maven不建议使用的(尤其是对一个开发团队来说),**Maven的最佳实践就是使用Maven私服来构建整个团队的项目部署和管理**。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。**当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。**

构建Maven私服使用Nexus,Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

## 构建你的Nexus

说完了私服的好处,你是不是已经等不及开始构建你的maven私服了,那么我们开始一起构建我们的私服。首先进入Nexus的网站http://www.sonatype.org/nexus/go/,找到你需要的包,下载(演示在CentOS上安装):

![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191009161226270-1505794828.png)

如果你希望用一些历史版本的包,https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3,里面自行查找。
首先下载对应的包到服务器上:

mkdir tools #新建tools目录
cd tools # 进入tools目录
wget http://download.sonatype.com/nexus/3/nexus-3.14.0-04-unix.tar.gz # 下载对应的安装包
tar zxvf nexus-3.14.0-04-unix.tar.gz # 解压缩
mv nexus-3.14.0-04/ /usr/local/nexus
cd /usr/local/nexus/bin

安装java运行环境:

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

## 配置私服

修改nexus.rc,让root可以启动nexus,nexus.rc在/usr/local/nexus/bin/下:

vim nexus.rc,删除run_as_user前面的注释,后面加上root:run_as_user=root

然后按esc按键,输入:wq回车。然后启动nexus

./nexus run &

出现如下内容,表示启动成功

![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191009161227506-303064166.png)

通过http://localhost:8081就可以访问了。

![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191009161231869-756157972.png)

## 手动同步索引(非必选项)

首先:前往maven中央仓库下载 [indexer-cli-5.1.1.jar](https://search.maven.org/search?q=g:org.apache.maven.indexer%20AND%20a:indexer-cli)解压工具

其次下载:[nexus-maven-repository-index.properties](http://repo.maven.apache.org/maven2/.index/nexus-maven-repository-index.properties)和[nexus-maven-repository-index.gz](http://repo.maven.apache.org/maven2/.index/nexus-maven-repository-index.gz)

再次,将上面下载的3个文件放到同一个路径下,通过如下命令解压:

java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer

最后,拷贝索引

nexus3.x拷贝到/sonatype-work/nexus3/blobs/default,3.x

## web的使用

首先访问对应的地址,然后输入默认**用户名 admin、密码 admin123**:

![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191009161232608-1998274497.png)

点击左侧的browse,可以看到各种repository的type,那么这些类型有什么区别呢:

- Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的
所有仓库资源,访问顺序取决于配置顺序3.x默认Releases,Snapshots,Central,可在web页面配置
在web界面点开
- Hosted:私有仓库,专门用来存储我们自己生成的jar文件
- 3rd party:未发布到公网的第三方jar (3.x去除了)
- Snapshots:本地项目的快照仓库
- Releases: 本地项目发布的正式版本
- Proxy:公网上发布的jar 例如:spring
- Central:中央仓库
- Apache Snapshots:Apache专用快照仓库(3.x去除了)

进入设置页面

![](https://i.loli.net/2019/09/25/H1Ylsyn3kbVuZtJ.png)

作如下操作:

![](https://img2018.cnblogs.com/blog/1560354/201910/1560354-20191009161248965-1197481533.png)

## 配置maven的setting.xml(本地的全局配置)

在maven的setting.xml文件中配置私服配置,这种方式配置后所有本地使用该配置的maven项目的pom文件都无需配置私服下载相关配置(下文中192.179.101.1:8081需要替为你自己的)

nexus-releases
deployment
deployment123

nexus-snapshots
deployment
deployment123

nexus-releases
*
http://192.168.101.1:8081/content/groups/public/

nexus-snapshots
*
http://192.168.101.1:8081/content/repositories/snapshots/

nexus

nexus-releases
http://192.168.101.1:8081/content/groups/public/

true

true
always

nexus-snapshots
http://192.168.101.1:8081/content/repositories/snapshots/

true

true
always

nexus-releases
http://192.168.101.1:8081/content/groups/public/

true

true
always

nexus-snapshots
http://192.168.101.1:8081/content/repositories/snapshots/

true

true
always

nexus

## 捷径:docker部署Nexus

docker确实是个好东西,快速,方便,使用docker部署Nexus那就是几分钟的事情具体如下命令:

docker pull sonatype/nexus3
docker run -d -p 8081:8081 --name nexus sonatype/nexus3

启动完成后,方位http://localhost:8081就可以进入web页面了,其他操作和配置和上面的内容一致,因此这部分就不在这里描述了。
关注我,关注测试
**From:https://blog.csdn.net/crisschan**

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

  1. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  2. Ubuntu server下搭建Maven私服Nexus

    Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...

  3. maven私服nexus安装

    maven私服nexus安装 1.nexus特性 1.1.nexus私服实际上是一个javaEE的web 系统 1.2.作用:用来管理一个公司所有的jar包,实现项目jar包的版本统一 1.3.jar ...

  4. Linux下搭建maven私服Nexus 3.2.1-01

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

  5. 【原创】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题

    [原创-转载请说明出处] 博主最近在虚拟机中搭建Maven私服,遇到了一个关键问题就是nexus 3.17版本后初始密码不是admin/admin123. 对于nexus不熟悉的我弄了很长时间!!!心 ...

  6. maven私服nexus搭建(windows)

    1.下载nexus 地址:https://www.sonatype.com/download-oss-sonatype 下载相应版本的zip包. 2.安装nexus 下载完成后,解压到本地任意目录. ...

  7. 持续集成之三:搭建Maven私服Nexus

    安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7. ...

  8. Maven仓库—Nexus环境搭建及使用

    使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包 http://blog.csdn.net/yanjun008/article/details/42084109 Nexus介 ...

  9. 持续集成之三:Maven私服Nexus使用

    环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 apache-tomcat-7.0.90 mysql-5.7.23 ...

随机推荐

  1. HTML(五)列表,区块,布局,表单和输入

    HTML 列表 无序列表 Coffee Tea Milk 默认是圆点,也可以 圆圈 正方形 有序列表 Coffee Tea Milk Coffee Tea Milk 默认是用数字排序 大写字母 小写字 ...

  2. HDU - 4370 0 or 1 最短路

    HDU - 4370 参考:https://www.cnblogs.com/hollowstory/p/5670128.html 题意: 给定一个矩阵C, 构造一个A矩阵,满足条件: 1.X12+X1 ...

  3. CodeForces - 534B-Covered Path+思路

    CodeForces - 534B 题意:给定初始和末尾的速度,和最大加速度和总时间,求出走的最长路程: 我一开始以为代码写起来会很繁琐... #include <iostream> #i ...

  4. poj 3169 Layout(差分约束+spfa)

    题目链接:http://poj.org/problem?id=3169 题意:n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0.这些牛的距离存在着一些约束关系:1.有m ...

  5. Apache JMeter (二)性能测试 入门实例

    上一节我们说了关于Jmeter环境的配置,接下来讲一个测试的实例. 1.运行Jmeter 进入Jmeter程序所在目录,运行"bin/jmeter.bat" Jmeter支持中文, ...

  6. JSP学习笔记(6)—— 自定义MVC框架

    仿照SpringMVC,实现一个轻量级MVC框架,知识涉及到了反射机制.注解的使用和一些第三方工具包的使用 思路 主要的总体流程如下图所示 和之前一样,我们定义了一个DispatchServlet,用 ...

  7. FastReport安装包下载、安装、去除使用限制以及工具箱中添加控件

    场景 FastReport .NET 2019是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案.可用在Microsoft Visual Studio 2 ...

  8. 使用java程序作为celery的工作节点

    celery是python实现的分布式调度框架,有时候想用celery去调用java服务,正好有一个celery-java的库可以使用,能达到这个效果,记录一下: 先添加依赖: <depende ...

  9. 安全性测试:OWASP ZAP 2.8 使用指南(二):ZAP基础操作

    ZAP桌面应用 ZAP桌面应用由以下元素组成: 1. 菜单栏  – 提供多种自动化和手动工具的访问 2. 工具栏  – 提供快速访问最常用组件的用户接口 3. 树结构窗口  – 展示被测网站树结构和脚 ...

  10. 装系统---------- u盘 安装系统

    1.首先根据你的电脑品牌进入bios 模式 如何进入:  不同电脑品牌进入bios 方法 进入之后设置启动方式 将第一启动设置为U盘启动设置好后 使用 Fn + F10  保存 2.使用制作好的 U盘 ...