上篇博客简单讲了一下Nexus的搭建和使用,这篇继续学习一下nexus中创建仓库,权限,角色,用户
一、问题描述
为什么会有这篇博客呢?上次做好的项目所有的Jar等都放入到了Release和snapshot仓库中了,如果这次的项目的Jar再放入到里面,容易造成管理的混乱。但是如果某个项目的相关jar,war等都放入到专门的仓库中,而不混放到一起,这样新建仓库可以提高对项目管理的规范性和可约束性,因此可以通过建立仓库来实现对某个项目的专门管理。
二、为仓库创建权限,角色,用户
1、新建仓库
仓库要建成 hosted本地类型的,而且需要一个Release子类型和一个Snapshot子类型的。这两个仓库,一个用来放快照版本,一个用来放置发布版本。
注意:Provider必须是Maven2格式的,Repository Pollicy是Release策略的。Deployvment Policy必须是Allow Redeploy允许发布的。这样建立好的是一个发布策略的仓库,用来保存的是已经发布完善的jar包版本.
同样的方法,我们再建立一个Repository Pollicy是Snapshot策略,Deployvment Policy也必须是Allow Redeploy允许发布类型的hosted仓库。这样仓库建立完毕,下一步我们分配权限
2、创建权限
为了方便管理系统专用仓库,我们要为改仓库创建专门的权限,角色和用户。
Privileges——>Add——>Repository TargetPrivilege
在上述页面中,填写改权限对应的仓库,以及仓库目标(选择ALL(Maven2))。如我为tgb_releases(Repo)仓库创建了一个权限zhangleilei,这个权限是Maven2标准提供的。
同样的,再为tgb_snapshot(Repo)创建对应的权限
3、创建角色
Roles——>Add——>Add
为创建好的权限添加和分配角色:在Add Roles and Privileges页面,输入已经建立好的权限,保存。
4、创建用户
Roles——>Add——>Add
为创建好的角色建立用户。包括用户名称,密码等。
三、设置maven项目中的pom.xml文件
<!-- 项目部署信息(会被继承)===begin -->
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>${nexus.url}/tgb_releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>${nexus.url}/tgb_snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- 项目部署信息===end -->
将项目所有的releases版本的jar发布到tgb_releases仓库中;所有snapshot版本的都发布到tgb_snapshots仓库中。
四、设置maven的setting
<!-- 设置发布 jar 包时的用户名及密码 -->
<servers>
<server>
<id>releases</id>
<username>zhangleilei</username>
<password>zhangleilei123</password>
</server>
<server>
<id>snapshots</id>
<username>zhangleilei</username>
<password>zhangleilei123</password>
</server>
</servers>
这里设置发布jar到仓库时我们的发布的认证信息,也就是我们前面对tgb_releases和tgb_snapshots设定用户的ID和密码。这样,项目构建的发布的jar包都会保存到tgb_releases和tgb_snapshots两个仓库中,避免了和上次GXPT的仓库保存的jar的冲突。