打败二进制存储库开发人员(也就是用户插件)
根据我们与成千上万的Artifactory的经验我们的用户有一件事是肯定的:我们不知道。每个组织都以不同的方式进行ALM:工件审批流、快照保留策略、构建到发布流、治理、所需的元数据以及更多——它们都是不同的。对于构建和部署流程应该是什么样子,我们肯定有一些想法,但是还有很多东西使您的流程独一无二。这很好。毕竟,您不是因为在理想的部署周期内工作而获得报酬,而是因为解决业务问题而获得报酬。至少我希望如此。
承认我们没有更好的了解这一事实,会使我们作为二进制存储库创建者的生活变得复杂……而且不仅伤害了我们的自尊。我们想为你提供完美的工具,但我们怎么能做到这一点,而不告诉你你的工作是什么?解决方案是众所周知的——扩展。附加组件用户插件,你能想到的。
“天啊!你可能会说。“代码!joy joy !终于有借口到处乱闯了!”或者“OMG !代码!把这些东西编码到你的产品中是你的工作,不是我的!”听着,不管怎样,我们都没有太多选择,不是吗?说到自定义,你你必须告诉Artifactory你想让它做什么。我们只能尽力为您做得简单些。因此,我们开发了一个简单的DSL。
在这篇文章中,我将向您展示使用用户插件定制Artifactory是多么容易。故事是这样的:您希望阻止下载已弃用的构件。弃用信息随附为自定义元数据通过某种质量保证机制对工件进行改进。
比方说,要禁止下载的工件被标记为“deprecated=true”属性。Artifactory允许你反应(与代码)到系统中的各种事件。方法中的可用回调列表用户插件文档.我们要写Download plugin我们要找的回调是altResponse.在这个回调中,我们可以提供一个替代的响应,而不是Artifactory所要求的响应。代码如下:
1下载{2altResponse{请求,responseRepoPath->3.def弃用=存储库.getproperty(responseRepoPath)
.列表(“弃用”)
4如果(Deprecated && Deprecated.toBoolean()){5状态= 4036消息=“这个神器已弃用,请使用一些
替代.'7日志.警告“请求废弃的神器:
responseRepoPath美元.";8}9}10}
- Groovy !如果你喜欢,那就好好享受吧!如果你不是,也别担心。这是amost比如Java,所以你可以毫无问题地阅读它,从第一天开始就会很有成效。
- 超级简单。
开始吧,一行一行:
- 声明它是一个下载插件。
- 定义我们需要的回调类型(altResponse).当我们实现替代响应时,Artifactory为我们提供了2个对象:
- 请求,实例的org.artifactory.请求.请求.它封装了关于传入请求的信息,比如客户端的详细信息和请求的信息
- 和responseRepoPath,实例的org.artifactory.回购.RepoPath.它封装了关于要返回的工件的信息。
- 我们希望获得' deprecated '属性的第一个值,如果定义在表示的工件上responseRepoPath.
- 如果该值存在且为' true ', 1或' y ' (如声明toBoolean())...
- 集返回代码至403 (被禁止的),
- 集正确的错误消息和
- - - - - - -(可选)-发出警告Artifactory日志.
