一. 私服搭建及配置
1 . 私服简介
私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
我们可以使用专门的 maven 仓库管理软件来搭建私服,比如:apache archiva,artifactory,sonatype nexus。这里我们使用 sonatype nexus。
2 . 安装nexus
2 . 1 . 下载nexus
nexus 专业版是需要付费的,这里我们下载开源版 nexus oss。下载地址:http://www.sonatype.org/nexus/go,最新的为oss3.x,我这里选择稳定版本2.x,点击后自动下载
2 . 2 . 使用bundle安装包安装nexus
解压安装包nexus-2.14.5-02.zip,打开命令提示符,进入nexus-2.14.5-02/bin目录 (为方便启动和退出nexus,可将bin目录添加到环境变量),
1.执行nexus命令
2.执行 nexus install 将nexus安装为windows服务
3.打开浏览器,访问:http://localhost:8081/nexus/:
点击右上角 log in,使用用户名:admin ,密码:admin123 登录,可使用更多功能:
4 . nexus预置的仓库
4.1 类型介绍
登陆nexus,在左边菜单栏里选择repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository。
这里简单介绍下几种repository的类型:
ø hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
ø proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
ø group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
4.2 管理本地仓库
我们前面讲到类型为hosted的为本地仓库,nexus预置了3个本地仓库,分别是releases, snapshots, 3rd party. 分别讲一下这三个预置的仓库都是做什么用的:
releases:
这里存放我们自己项目中发布的构建, 通常是release版本的, 比如我们自己做了一个ftp server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到nexus的releases本地仓库. 关于符合发布后面会有介绍.
snapshots:
这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.
3rd party:
顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到oracle 的jdbc驱动, 这个时候我们就需要自己添加到3rdparty仓库。
4.3 在nexus为自己的项目手动单独建库
1. 建库,add– >hostedrepository
按照下图填写信息,注意圈的地方,填写完成后save
2. 然后选择publicrepositories,打开configuration选项卡
3. 将自己创建的仓库添加到group,如图从右侧移到左侧,点击save,保存。至此,已经成功搭建好我们自定义的仓库了。
注:如果需要你还可以创建一个仓库组,在repositories菜单处选add–>repository group即可
5. 在nexus创建账户
最后点击保存。当然自己也可以创建角色,分配权限等,这里直接用已有的角色,省略了一些步骤。
二. 利用搭建的私服,进行上传和下载jar包
1. 远程仓库的认证
大部分公共的远程仓库无须认证就可以直接访问,但我们在平时的开发中往往会架设自己的maven远程仓库,出于安全方面的考虑,我们需要提供认证信息才能访问这样的远程仓库。配置认证信息和配置远程仓库不同,远程仓库可以配置在settings.xml文件中,也可直接在pom.xml中配置,后面会分别举例说明,但是认证信息必须配置在settings.xml文件中。在settings.xml中配置认证信息更为安全。如下:在settings.xml中配置<servers>节点,用的账号为上面我们创建的账户。






















