最新nexus资源库使用手册.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datenexus资源库使用手册Maven使用手册nexus资源库使用手册作者:魏玮本文主要描述的是如何在使用nexus进行类库的管理,以及权限的管理安装配置在hudson项目持续集成操作指南中有详细描述,这里就不赘述了。已搭建好的仓库地址:http:/192.168.22.253/nexus/类库查询再浏览器地址栏输入http:/192.168.22.253/nexus/ 直接看到的就是类库搜索页面,支持关键词搜索,任何人都可以通过界面查询。如果知道要查找的类库属于哪个仓库(Repository),可以点击页面左侧的点击Repositories会显示所有可用的仓库,选择某1个仓库进行搜索,浏览每个仓库有多个个选项卡Browse Storage:浏览、搜索Browse Index:浏览索引(一般不用管)Configuration:对于仓库的基本配置这里只能修改name,仓库权限(release发布版本 snapshot快照版本)基本不改其它选项会在添加仓库的步骤中讲到。Mirrors:镜像服务器,用于该仓库正常访问时备份服务器(一般不用管)Summery:该资源仓库的摘要(一般不用管)Artifact Upload:将类库上传到仓库中(重要)类库上传步骤说明首先需要选择上传的类库的定义方式,有2种一般选择From POMGAV Parameters一般情况用GAV Parameters 上传时填写参数表单,如果自定义了POM文件可以用第一种,这里着重说GAV Parameters方式选择“GAV Parameters”1 Group:组id,就是要填写这个类库的groupid该groupid自动生成的该类库的pom文件中,同时也会作为存储这个类库的第1级目录名称;1) 一般情况直接使用jar的名称即可(不包含版本号)例:asm.jar,那么groupid填写asm即可1) 但是有一些类库是由一组相关的jar功能组成的例:commons-io.jar commons-lang.jar commons-logging.jar都是apache common组件,因此他们的group需要定义成一致的比如group都填写成:commonsPs:不要使用汉语拼音.2 Artifact:上传的类库的标识,一般也直接使用jar文件的名称即可(不包含版本号)例:ojdbc14.jar其Artifact就填写ojdbc14即可3 Version:类库版本,需要填写这个类库的准确版本4 Packaging:选择上传的文件类型,照实选择即可,多为jar填写完后,就是选择要上传的文件,没啥可说每选择一个文件后,点击 就会把文件插入带上传列表中,可以添加多个文件统一上传,不过考虑到性能消耗,不要一次添加过多文件,一般不要超过20个。添加完毕后,点击页面下方的的上传按钮即可。类库管理规范1 为了统一标准,最大限度避免重复上传,第3方类库(公共类裤脚)上传权限统一控制,nexus原则上由测试部负责控制(admin权限、deploy权限)2 在确定当前所需要的类库在资源仓库中不存在,或者版本缺少的情况下(务必确认),可以提供一份类库清单以及类库文件,发给测试部的接口人,由测试部进行备案,并进行上传工作(需要发布者权限delopment),在上传前需要再次确认仓库中并没有存在相同的类库(测试部负责)。类库清单文件格式: <dependency> <groupId>commons</groupId> <artifactId>commons-io</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons</groupId> <artifactId>commons-util</artifactId> <version>final</version> </dependency> <dependency> <groupId>concurrent</groupId> < groupId >concurrent</artifactId> <version>1.3.4</version> </dependency> .其中groupId、artifactId、version就分别对应了上传时要填写Group,Artifact,Version,该文件的格式与maven的依赖关系一致,在整理依赖关系时就可以直接得出这个清单,不会造成重复劳动重要事项:对于仓库中不存在的类库,可以按照我们的规则自行指定;如果仓库中已存在该类库其他版本,则需要上传的类库的groupId、artifactId必须与已上传的资源保持一致;如果要上传类库在仓库中并不存在,但是属于1个组件的一部分,并且其他组成部分已经上传到仓库中,那么上传时,需要保持与仓库中已上传的其他部分保持相同的groupid总结:除非太离谱的情况,否则务必要保证与已存在的资源保持一致性,哪怕错大家也要一起错,对于依赖资源,保持一致性非常重要,出了问题也方便统一处理。对上传类库与已存在的资源一致性检查也需要测试部负责3 类库所有查询,下载权限公开,可以匿名访问4 每个部门都有自己的内部项目,这些内部项目也可以通过nexus进行版本仓库管理,因此如果部门有需求,可以申请开通部门内部项目的仓库,一般包括发布版本(Release)与快照版本(Snapshot)2种版本的仓库(快照版本、发布版本的定义与应用请参看hudson项目持续集成操作指南)a) 这个管理权限可以放开给各部门(每个部门开通单个账号);b) 建立仓库、开通权限的工作需要由测试部统一控制,备案;c) 类库管理方式与第3方类库保持一致。建立仓库、开通权限的步骤在下面详细说明;添加新的仓库如何添加发布版本、快照版本的仓库呢?首先必须用仓库管理员的身份登录,这时点击右侧时,除了显示仓库列表外,还会出现操作选项点击Add 即可进入添加仓库的界面一般选择第1个Hosted Repository然后填上写仓库的详细信息Repository ID:仓库ID,发布版本的仓库:部门标示-release快照版本版本的仓库:部门标示-snapshotRepository Name:仓库名称,照实填写即可,与ID一样也可以Provider:Maven2即可,暂时不会升级Repository Policy:如果是发布版本就选”Release”如果是快照版本就选”Snapshot”192.168.22.253上的目录地址Override Local Storage Location:E:nexus-workstorage(与Repository ID相同的目录,会自动创建目录)添加后的仓库会在Repository列表中显示出来,可以删除,或上传类库,仓库中维护类库的流程与前面说的一致。我们创建mmt-release、mmt-snapshot2个仓库,为了后面设置权限,以及方便管理,我们还需要创建一个仓库组包含着2个仓库还是Add 这次选择Repository GroupGroup ID:仓库组ID 使用部门标示-repositoryGroup Name:仓库组如实填写,与仓库组ID保持一致也可Provider:maven2即可Pulish URL:True最后重要的是要把组包含的仓库加入到列表中,我们选择mmt-release、mmt-snapshot添加到组中。管理权限创建各部门内部仓库管理员账号仓库管理员身份登录点开左侧Security添加该部门仓库管理员的权限组该管理员权限限制只能管理本部门的仓库例:我们建立了mmt-release、mmt-snapshot的仓库那么mmt开发部的仓库管理员只能有权限维护管理mmt-release、mmt-snapshot这2个仓库点击Privilages,出现添加权限页面点击AddName:权限组名称使用 仓库id-privilege例:刚才我们创建了mmt-release、mmt-snapshot因此分别添加这2个仓库的权限Description:权限描述,如是填写即可(中文支持不太好,最好用英文)Repository:要创建权限的仓库,新建的仓库只需要创建1次,Repository Target:一般选择Maven2即可点击save后会执行创建,创建完成后在权限列表中可以看到PS:列表是按照字母顺序排序的添加仓库管理员角色点击Roles出现角色管理页面点击 Add 选择 Nexus RoleRole Id:角色ID命名为 部门标示-deployment-RoleName:与Role Id保持一致即可Description:如实填写即可(中文支持不太好,最好用英文)选择权限这里需要添加的权限包括:Artifact Upload Search Repositriesmmt-release的read 、view、create、update、deletemmt-snapshot的read 、view、create、update、deletePS:左侧权限列表其实很长选中列表可以通过滚轮滚动添加管理员用户账号点击User添加用户即可点击Add添加新用户选择Nexus User即可User ID:用户名推荐 部门标示-deploymentName:相当于姓名(中文支持不太好,最好用英文)Email:该管理员邮箱Status:选择Active下面就是密码填写没什么可说的然后选择用户权限角色最少要包含4个角色mmt仓库管理员角色mmt-deploymentNexus delployment Role赋完权限后保存,然后就可以用刚创建的mmt-deployment用户登录。在maven中添加仓库配置在nesxus中创建仓库,还需要在maven中配置,这样通过maven构建时才能从这个仓库中搜索类库-