首页 > 代码库 > Maven之——Nexus权限管理与调度任务

Maven之——Nexus权限管理与调度任务

Maven之——Nexus权限管理与调度任务

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作为私服、部署构件到私服、权限管理、调度任务。

Maven之——Nexus权限管理与调度任务