击败二进制存储库开发人员(又名用户插件)

从我们与数千家工厂合作的经验来看我们的用户有一件事是肯定的:我们不知道得更好。每个组织都以不同的方式执行ALM:工件批准流、快照保留策略、构建到发布流、治理、所需的元数据等等——它们都是不同的。对于构建和部署流程应该是什么样子,我们肯定有一些想法,但是有很多东西使您的流程与众不同。这很好。毕竟,您得到的报酬不是在理想的部署周期内工作,而是解决业务问题。至少我希望如此。

作为二进制存储库的创建者,承认我们不知道更好的事实会使我们的生活变得复杂……不仅仅是通过伤害我们的自我。我们想给你完美的工作工具,但如果不规定你的工作是什么,我们怎么能做到呢?解决方案是众所周知的-扩展,又名。附加组件用户插件,应有尽有。

“天啊!你可能会说。“代码!joy joy !终于有借口到处乱闯了!”或者“OMG !代码!把这些东西编码到你的产品中是你的工作,不是我的!”不管怎样,我们都没得选择,不是吗?当涉及到定制时,你得告诉神器你想让它做什么。我们只能尽力为您简化。所以,我们开发了一个简单的DSL。

在这篇文章中,我将向您展示使用用户插件定制Artifactory是多么容易。事情是这样的:您希望阻止下载已弃用的工件。弃用信息附加为自定义元数据通过一些质量保证机制对工件进行处理。

比方说,禁止下载的构件被标记为属性“deprecated=true”。Artifactory允许你反应(带代码)到系统中的各种事件。中的可用回调函数列表用户插件文档.我们会写下载插件我们要找的回调是altResponse.在这个回调中,我们可以提供一个替代响应,而不是Artifactory被请求的响应。代码如下:

1下载{2altResponse{请求,responseRepoPath->3.def弃用=存储库getpropertyresponseRepoPath
列表“弃用”
4如果弃用&&已弃用toBoolean)){5状态= 4036消息=“此工件已弃用,请使用一些。
替代.'7日志警告"请求已被弃用的工件:
responseRepoPath美元."8}9}10}
10行代码。这是所有。让我们来看看它们:
  • Groovy !如果你喜欢,那就好好享受吧!如果你不是,别担心。这是amost就像Java一样,所以你读起来不会有问题,而且从第一天开始就很有效率。
  • 超级简单。

开始吧,一行一行:

  1. 声明它是一个下载插件。
  2. 定义我们想要的回调类型(altResponse).当我们实现备选响应时,Artifactory为我们提供了2个对象:
  3. 我们想要得到' deprecated '属性的第一个值,如果定义在由responseRepoPath
  4. 如果该值存在并且为' true ',则1或' y ' (声明如下:toBoolean
  5. 返回代码为403 (被禁止的),
  6. 正确的错误信息和
  7. - - - - - -(可选)-向Artifactory日志
好了,就这些。现在,当您看到用户插件的巨龙并没有那么可怕时,请考虑一下您可以自动化交付周期、应用规则和检查或为企业用户提供更好的Artifactory体验的独特方法。在这里这里有一些示例和社区贡献的插件来激发您的想象力。
享受你的构建