Nexus安装、使用说明、问题总结

1 . 私服简介

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

                                                

  我们可以使用专门的 Maven 仓库管理软件来搭建私服,比如:Apache ArchivaArtifactorySonatype Nexus。这里我们使用 Sonatype Nexus。

2 . 安装Nexus

2 . 1 . 下载Nexus

  Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包。下载地址:http://www.sonatype.org/nexus/go

2 . 2 . 使用bundle安装包安装Nexus

解压安装包nexus-2.8.1-bundle.zip,打开命令提示符,进入/nexus-2.8.1-01目录,键入nexus命令(为方便启动和退出Nexus,可将bin目录添加到环境变量):

执行 nexus install 将Nexus安装为Windows服务。可将服务启动方式设为手动,以后通过 nexus start 即可启动Nexus ,通过 nexus stop 退出Nexus:

打开浏览器,访问:http://localhost:8081/nexus/:

点击右上角 Log In,使用用户名:admin ,密码:admin123 登录,可使用更多功能:

3 . Nexus预置的仓库

点击左侧 Repositories 链接,查看 Nexus 内置的仓库:

Nexus 的仓库分为这么几类:

  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
  • proxy 代理仓库:代理公共的远程仓库;
  • virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。

4 . 添加代理仓库

以 Sonatype 为例,添加一个代理仓库,用于代理 Sonatype 的公共远程仓库。点击菜单 Add - Proxy Repository :

填写Repository ID - sonatype;Repository Name - Sonatype Repository;

Remote Storage Location - http://repository.sonatype.org/content/groups/public/ ,save 保存:

将添加的 Sonatype 代理仓库加入 Public Repositories 仓库组。选中 Public Repositories,在 Configuration 选项卡中,将 Sonatype Repository 从右侧 Available Repositories 移到左侧 Ordered Group Repositories,save 保存:

5 . 搜索构件

为了更好的使用 Nexus 的搜索,我们可以设置所有 proxy 仓库的 Download Remote Indexes 为 true,即允许下载远程仓库索引。

索引下载成功之后,在 Browse Index 选项卡下,可以浏览到所有已被索引的构件信息,包括坐标、格式、Maven 依赖的 xml 代码:

有了索引,我们就可以搜索了:

6 . 配置Maven使用私服

私服搭建成功,我们就可以配置 Maven 使用私服,以后下载构件、部署构件,都通过私服来管理。

在 settings.xml 文件中,为所有仓库配置一个镜像仓库,镜像仓库的地址即私服的地址(这儿我们使用私服公共仓库组 Public Repositories 的地址):

    <mirrors>
<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf> <!-- * 表示让所有仓库使用该镜像-->
<name>central-mirror</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>

PS1:私有maven仓库Nexus使用http与https协议

Http协议:没有问题

Https协议:

Could not GET 'https://some_server.com/some/path/some.pom'.
> peer not authenticated
解决:

If you get any other error like this:

 Could not GET 'https://some_server.com/some/path/some.pom'.
> peer not authenticated

Then you need to import a certificate:

keytool -import -alias <the short name of the server> -file <cert_file_name_you_exported.cer> -keystore cacerts -storepass changeit

It will prompt you to import the certificate, type yes and press enter.

Then restart your eclipse and try building the project.

最新文章

  1. Zookeeper常用命令
  2. VMware下Windows Server 2012添加新磁盘
  3. SQL优化技巧
  4. JavaScript 事件——“事件类型”中“复合事件”和“变动事件”的注意要点(转)
  5. LVS入门
  6. think in java 读书笔记 1 ——移位
  7. Python变量与常量
  8. 【Binary Tree Maximum Path Sum】cpp
  9. 【C++对象模型】构造函数语意学之一 默认构造函数
  10. 九度OJ 1504 把数组排成最小的数【算法】-- 2009年百度面试题
  11. jdk-动态代理
  12. ZOJ 3329 One Person Game 【概率DP,求期望】
  13. LINUX 笔记-ln 命令
  14. 完成 bass 库的频谱显示效果图
  15. sql 语句 获取某张表某列字段最短的某几行数据
  16. 多输入select
  17. nginx跨域配置(windos走过的坑)
  18. python中stack在实际中的简单应用之平衡符号
  19. Python - Scrapy 框架
  20. .net 缓存

热门文章

  1. JS stacktrace(Node内存溢出)
  2. 我的vimrc设置
  3. PeopleSoft进程卡在“已排队”状态诊断和解决
  4. django-rest-framework配置json web token
  5. Namenode启动报错Operation category JOURNAL is not supported in state standby
  6. CSS 图像高级 CSS 渐变
  7. JQ滚动条监听事件
  8. 【笔记】Python基础三:文件
  9. 元组拆包 与 python拆包
  10. 原型设计工具—Axure