maven入门基础:为项目分配独立的仓库实践(十七)
一. 总思路
1. 需求:不同项目组有不同的开发人员,为了仓库的安全管理,需要为项目不同的仓库,并且将仓库的部署、修改和删除权限赋给该项目组的成员,其他用户只能读、下载和搜索该仓库的内容
2. 假设:一个新项目foo有独立的项目组成员、独立仓库,只有项目组成员才有权限部署仓库
3. 总体思路(从下到上)
(1) 仓库
(2) 仓库目标
(3) 权限
(4) 角色
(5) 用户
4. 测试
(1) 有权限用户部署构件
(2) 无权限用户部署构件
(3) 从仓库下载自定义构件
二. 创建仓库
1. 创建仓库Foo Releases
2. 创建仓库Foo Snapshots
3. 把这两个仓库加入仓库组
三. 创建仓库目标(请求路径过滤)
1. 概念:匹配请求路径中哪些路径才是合法的,请求路径的组成格式是:http://仓库地址/groupId/artfactId/版本号
分别对应pom.xml中的groupId、artfactId、version
2. 格式:匹配的格式是正则表达式,*表示通配
3. 仓库类型
四. 自定义仓库权限
1. 系统预设权限(不可修改)
(1) 仓库浏览:Repository View,在创建仓库的时候自动添加的权限
(2) 仓库目标:Repository Target,是针对所有仓库(不包括自定义仓库)的增删查改权限
(3) 应用:Application,针对系统访问资源的控制,比如
Scheduled Task Types - (read):执行的任务浏览
Artifact Dowload:构件下载
User Set Password - (create, read):用户密码设置
Checksum Search:校验和搜索
2. 自定义权限:基于仓库和仓库目标创建权限
(1) 创建发布型仓库:Foo Releases权限
这里的权限包括:创建权限、修改权限、删除权限、读取权限、浏览权限(系统预设)
(2) 创建快照型仓库:Foo Snapshots权限
基本同Foo Releases,只是相关说明改改即可,完成后的结果界面
五. 自定义创建角色并绑定权限
1. 创建一个Foo-deployer的角色,该角色具有Foo-Releases和Foo-Snapshots的所有权限
注意:这里可以根据需求创建不同的角色,不同的角色不同的权限,比如角色A拥有全部权限,角色B拥有读权限,然后不同的角色又可以分配给不同的用户,这样就达到了不同用户可以拥有不同的权限的目的
2. 创建一个baseroles的角色,该角色只具有系统预设的基本权限,没有发布的权限
六. 创建用户并绑定角色
1. 创建用户havepriv,添加Foo-deployee角色,拥有发布权限
2. 同样地,创建用户nopriv,添加baseroles角色,该角色只拥有系统预设的权限,没有发布权限
七. 测试无权限用户部署构件
1. 创建一个新的项目:myjartest,里面写一些代码
2. 修改settings.xml,添加配置
3. 修改pom.xml,添加配置
4. 可以先编译下,不报错的话再执行下一步
5. 在工程目录下使用mvn deploy进行发布
发现报错,说明没有权限
八. 测试有权限用户部署构件
1. 只需要修改settings.xml中的server配置
2. 重新使用mvn deploy进行发布,可以看到发布成功
3. 验证nexus,可以看到已经发布了jar包
九. 从仓库获取自定义构件
新建一个项目:verifyjartest,这个项目用来获取和调用上面发布的jar包。配置pom.xml,拉取到jar包再调用验证,发现结果正确
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/12246346.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?