1、Nexus简介

Nexus是当前非常流行的一种Maven私服。Maven私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。

有了Nexus之后,当Maven需要下载构件时,直接请求私服。如果私服上存在,则下载到本地仓库;否则,私服将先请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

除了代理功能外,Nexus的优点还有:

  • 强大的仓库管理
  • 构件搜索
  • 基于REST
  • 有好的UI(使用extjs)
  • 基于简单文件系统而非数据库

2、下载和安装Nexus

1)下载

Nexus提供了两种安装包:

  • 包含Jetty容器的bundle包
  • 不包含容器的war包

下载地址:http://www.sonatype.org/nexus/archived/

这篇文章主要介绍使用bundle方式的安装Nexus,并不提供war包的安装方式。

2)安装

解压安装包nexus-2.8.1-01-bundle.zip,将bin文件夹的绝对路径添加到环境变量path中,打开Windows的控制台(以管理员身份运行); 执行nexus install将Nexus安装成Windows服务;

执行nexus start即可启动Nexus。

打开浏览器,输入http://localhost:8081/nexus/,即可访问Nexus的控制首页。

3、查看Nexus预置的仓库

点击右上角Log In,输入用户名:admin,密码:admin23,可使用更多功能。 点击左侧的Repositorys,查看Nexus的内置仓库。

Nexus的仓库主要分类如下:

  • hosted宿主仓库:用于部署三种构件:
    • 无法从公共仓库获取的构件
    • 第三方的项目构件
    • 自己的项目构件
  • proxy代理仓库:代理公共的远程仓库
  • virtual虚拟仓库:用于适配Maven 1
  • group仓库组:Nexus通过仓库组统一管理多个仓库,这样只需要请求一个仓库组就可以请求该仓库组管理的多个仓库

4、添加代理仓库

5、搜索构件

1)设置允许下载远程仓库索引

点击选中一个代理仓库,然后点击Configuration,将Download Remote Indexes选项设置为True

2)下载索引,并检查是否下载成功

点击查看Browse IndexTab页。如果加载出来索引,则表示远程仓库的索引下载成功,否则表示下载失败。

3)搜索构件

搜索构件的方式主要有两种: 一种是名称模糊搜索,即根据关键词模糊匹配; 另一种是GAV搜索,即已知构件的GroupId+ArtifactId+Version对构件进行精确搜索。

6、配置maven使用nexus

只需要修改1个文件:settings.xml

<mirrors>    
<mirror>
<id>nexus</id>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>

7、部署构件到nexus私服仓库中

需要修改2个文件:pom.xmlsettings.xml

1)pom.xml

<distributionManagement> 
<repository>
<id>my-nexus-releases</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>my-nexus-snapshot</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

2)settings.xml

<servers>    
<server>
<id>my-nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>my-nexus-snapshot</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

执行mvn deploy后,打开仓库地址,可以看到刚刚部署的构件已经上传到Nexus的私服仓库中。

参考资料