转自http://www.th7.cn/Program/java/201411/314250.shtml
1、 Nexus的权限管理
出于安全性考虑、需要对Nexus仓库进行权限管理、比如只有管理员才能配置Nexus、某个项目组有特定的仓库、等等
2、 Nexus的访问控制模型
Nexus基于权限(Privilege)做访问控制的。一个用户可以被赋予一个或者多个角色、一个角色可以包含一个或者多个权限、还可以包含一个或者多个角色。用户必须拥有相应的角色继而拥有相应权限、才能做相应操作。
Nexus预定义了三个用户、以admin登录、单击左边导航栏User链接:
admin:拥有对Nexus服务完全控制、默认密码admin123
deployment: 能访问Nexus、浏览仓库、搜索、并且上传部署构件、但是无法对Nexus进行任何配置、默认密码deployment123。
Nexus预定义了一些常用且重要的角色,如:
UI:Basic UIPrivileges:包含了访问Nexus界面必须的最基本的权限。
UI:RepositoryBrowser:包含了浏览仓库页面所需要的权限。
UI:Search:包含了访问快速搜索栏及搜索界面所需要的权限。
Repo:AllRepositories (Read):给予用户读取所有仓库内容的权限。没有仓库的读权限用户将无法再仓库页面看到实际的仓库内容,也无法使用Maven从仓库下载构件。
Repo:AllRepositories (Full Control):给予用户完全控制所有仓库内容的权限。用户不仅可以浏览、下载构件,还可以部署构件及删除仓库内容。
3、 Nexus为项目分配独立的仓库
避免各个项目上传到同一仓库发生冲突干扰、可以为每个项目创建独立的仓库、每个项目所拥有的仓库只有其项目组成员才能对此仓库进行部署、修改和删除权限、其他用户只能读取、下载、和搜索该仓库内容。
四步实现:1、创建项目独立仓库。2、为仓库建立权限。3、创建包含上述权限的角色。4、创建用户、指定用户拥有上面的角色。以创建Andy Release仓库为例、具体如下:
1、创建Andy Release仓库
2、为仓库建立权限
3、创建角色
4、创建用户
最后要做的就是在项目中指定特定的部署仓库、并在settings.xml配置fooRelease仓库的认证信息、也就是上面第四部用户的帐号密码。
4、 Nexus调度任务
Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。
要建立一个调度任务,单击左边导航菜单中的“Scheduled Tasks”,然后再右边的界面上单击Add按钮,按照页面上的提示填写相关内容。
Nexus包含了以下几种类型的调度任务:
Download Indexs:为代理仓库下载远程索引。
Empty Trash:清空Nexus的回收站,一些操作实际是将文件移到了回收站中。
Evict UnusedProxied Items From Repository Caches:删除代理仓库中长期未被使用的构件缓存。
Expire RepositoryCache:Nexus为代理仓库维护了远程仓库的信息以避免不必要的网络流量,该任务清空这些信息以强制Nexus去重新获取远程仓库的信息。
Publish Indexs:将仓库索引发布成可供m2eclipse和其他Nexus使用的格式。
Purge NexusTimeline:删除Nexus的时间线文件,该文件用于建立系统的RSS源。
Rebuild MavenMetadata Files:基于仓库内容重新创建仓库元数据文件maven-metadata.xml,同时重新创建每个文件的校验和md5与sha1。
ReIndexRepositories:为仓库编纂索引。
Remove SnapshotsFrom Repositories:以可配置的方式删除仓库的快照构件。
Synchronize ShadowRepository:同步虚拟仓库的内容(服务基于Maven1)。
比如建立一个每个月更新一次中央仓库索引的任务:
总结:
Nexus到这里就结束了、整理一下顺序、搭建Nexus私服、仓库与仓库组的概念、hosts仓库、proxy仓库、仓库组的创建与他们之间的关系、索引与构件搜索、配置Nexus作为私服、部署构件到私服、权限管理、调度任务。