日期:2014-05-17  浏览次数:20939 次

windows下集成maven+eclipse开发环境一:安装使用maven私服nexus

1.   Nexus 分为开源版和企业版,开源版基于 GPLv3 许可证。开源版本主要特性有:

1)   较小的内存占用(最少为 28MB )

2)   基于 ExJS 的友好界面

3)   基于 Restlet 的完全 REST API

4)   支持代理仓库、宿主仓库和仓库组

5)   基于文件系统,不需要数据库

6)   支持仓库索引和搜索

7)   支持从界面上传 Maven 构件

8)   细粒度的安全控制。


2.   Nexus 的下载地址是: http://nexus.sonatype.org/downloads/ 。有两种安装包:一种是自带 jetty 容器的 Bundle 包,另一种是不带 web 容器的 war 包。


3.   Bundle 包安装目录下会有两个目录: nexus-webapp-x.x.x 包含了 Nexus 运行所需的文件。 sonatype-work 下包含Nexus 生成的配置文件、日志文件、仓库文件等。 Nexus 默认访问地址是: http://localhost:8081/nexus 。

如需要改变端口,可以修改 nexus-webapp-x.x.x/conf/plexus.properties 文件中的    application-port 属性即可。

 

4.   Nexus 的仓库类型有四种: group (仓库组)、 hosted (宿主)、 proxy (代理)和 virtual (虚拟)。仓库组没有具体的内容,它会转向其包含的宿主仓库或代理仓库获得实际构件的内容。宿主仓库主要是用来存放一些组织内部的构件,或由于版权原因不能放在公共 Maven 仓库中的构件的。代理仓库则是用来代理远程仓库,它会从远程仓库下载并缓存构件。虚拟仓库用于 maven1 格式的仓库,会动态地将仓库内容格式进行转换。


 

5.   Nexus 内置了如下仓库:

1)  Maven Central :代理 Maven 的中央仓库,策略为 release

2)  Releases :策略为 Release 的宿主类仓库,用来部署组织内部的 release 版本构件

3)  Snapshots :策略为 Snapshot 的宿主类仓库,用来部署组织内部的 release 版本构件

4)  3rd party :策略为 Release 的宿主类仓库,用来部署无法从公共仓库获得的第三方 release 版构件。

5)  Apache Snapshots :代理 Apache Maven 仓库,策略为 Snapshot

6)  Codehaus Snapshots :代理 Codehaus Maven 仓库,策略为 Snapshot

7)  Google Code :代理 Google Code Maven 仓库,策略为 Release

8)  Java.net – Maven 2 :代理 Java.net Maven 仓库,策略为 Release

9)  Public Repositories :将上述策略为 Release 的仓库聚合并通过一致的地址提供服务。

10)  Public Snapshot Repositories :将上述策略为 Snapshot 的仓库聚合并通过一致的地址提供服务。

 

6.   创建 Nexus 宿主仓库时,仓库会默认地存放在 sonatype-work/nexus/storage/repository-id/ 下,也可以填写 Override Local Storage Location 自定义仓库的存储路径。同时可以设置以下选项:

Deployment Policy :只读(禁止部署)、关闭重新部署(同一构件只能部署一次)或允许重新部署。

Allow File Browser :设置是否允许在 Repository 的 Browse Storage 选项卡中浏览仓库。

Include in Search :设置是否对该仓库进行索引并提供搜索。

Publish URL :设置是否通过 URL 提供服务,如为 false ,访问该仓库的地址时会得到 404

Not Found Cache TTL :缓存未找到文件信息的时间(此时间内不再去找,直接返回没找到)

 

7.   创建 Nexus 代理仓库时,除了设置远程仓库的地址和认证信息外,还可以设置以下选项:

Download Remote Indexes :设置是否下载远程仓库的索引。(下载远程仓库的索引后,即使没有缓存远程仓库的构件,用户依然能搜索或浏览构件的基本信息)

Checksum Policy :设置校验和出错时,是忽略、记录警告信息还是拒绝下载。

Artifact Max Age :设置多久更新一次 Artifact (对于策略为 release 的仓库,可以设置为 -1 ,也就是不更新)

Metadata Max Age :设置多久更新一次