是否可以自动设置Artifactory属性?

时间:2019-02-13 16:50:54

标签: artifactory

Artifactory似乎会自动为RPM,Python wheel等生成属性。我可以针对自己的文件格式扩展此功能吗?

我已经阅读了文档,并讨论了REST API等,但是我希望Artifactory直接从要上传的文件中提取属性。

还没有-我问如何。

1 个答案:

答案 0 :(得分:2)

自动为RPM等生成属性的逻辑被硬编码到Artifactory支持的每种包类型中,并且您不能添加自定义存储库类型。

您可以 做的是编写一个user plugin,只要上传文件,读取文件并添加适当的属性,它就会运行。例如:

storage {
    afterCreate { item ->
        if (!item.isFolder() && item.name.endsWith(".customext")) {
            def fstream = repositories.getContent(item.repoPath).inputStream
            // read fstream and generate properties
            repositories.setProperty(item.repoPath, propName, propVal)
        }
    }
}

一些注意事项:

  • 语言是Groovy。如果您不熟悉Groovy,那么您可以假装是Java,因为大多数Java也是有效的Groovy。
  • 用户插件文档为here
  • 用户插件API Javadoc是here
  • 作为参考,官方支持的插件均为here