您的位置:首页 > 其它

【maven实战】35-为项目分配独立的仓库

2018-02-06 21:36 113 查看
在组织内部,如果所有项目都部署快照及发布版本构件至同样的仓库,就会存在潜在的冲突及安全问题,我们不想让项目A的部署影响到项目B,反之亦然。解决的方法就是为每个项目分配独立的仓库,并且只将仓库的部署,修改,删除权限赋予该项的成员,其他用户只能读取,下载和搜索该仓库的内容。

假设项目名臣为Foo,首先为该项目建立两个宿主仓库Foo Snapshot和Foo Release,分别用来部署快照构件和发布构件。有了仓库之后,就需要创建基于仓库的增,删,改,查权限。在Nexus中,这样的权限是基于Repository Target建立的,Repository Target实际上是一系列正则表达式--匹配,以检查权限是否正确。单击左边导航栏中的Repository Targets链接,就能看到如下的页面:



图中选中了All(Maven2)这一Repository Target,在下方可以看到他包含了一个值为*的正则表达式,表示该Repository Target能够匹配仓库下的任何路径。

下一步就是基于该Repository Target和Foo Release,Foo Snapshots两个仓库建立权限。单击页面左边导航栏中的Privileges链接进入权限页面,然后单击Add按钮,选择Repository Target  Privilege,创建对应于Foo Release的权限。



选择Foo Release仓库和All(Maven2),表示创建匹配Foo Release仓库任何路径的权限。单击Save按钮之后,就能在权限列表中看到相应的增,删,改,查权限。如下:



然后遵循同样的步骤,为Foo Snapshot建立增删改查权限。

下一步是创建一个包含上述权限的角色。单击导航栏中的Roles进入页面,再单击页面上方的Add按钮并选择Nexus Role,将之前创建的权限加入到该角色中。



角色创建完成之后,根据需要将其分配给Foo项目的团队成员。这样其他团队的成员默认只能读取Foo Release和Foo Snapshot的内容,而拥有Foo Deployer角色的用户就可以执行部署构件等操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: