使用gradle从工件属性中解析工件

时间:2017-06-19 15:53:28

标签: gradle artifactory

我试图弄清楚如何使用artifactory和gradle来解析其属性中的依赖关系但是the documentation还不清楚。

我有一个大型构建需要解析数千个在build.gradle文件中没有声明版本的工件。我们的大多数用例都有Netflix dependency recommender plugin,但我仍在尝试使用属性来解决最后一种情况。

我们正在处理的工件通常是常春藤,看起来很标准,例如:

{
  "repo" : "some_repo",
  "path" : "/some_group/some_name/1.1.0-integration",
  "created" : "2017-06-19T10:21:55.765+02:00",
  "createdBy" : "lebowski",
  "lastModified" : "2017-06-19T10:21:55.765+02:00",
  "modifiedBy" : "leboswki",
  "lastUpdated" : "2017-06-19T10:21:55.765+02:00",
  "children" : [ {
    "uri" : "/some_file-1.1.0-integration.jar",
    "folder" : false
  }, {
    "uri" : "/some_file-tests-1.1.0-integration.jar",
    "folder" : false
  }, {
    "uri" : "/ivy-1.1.0-integration.xml",
    "folder" : false
  } ],
  "uri" : "http://artifactory.url.com:8081/artifactory/api/storage/some_repo/some_group/some_name/1.1.0-integration"
}

some_group / some_name的多个版本始终具有以下格式的版本号:x.y.z-integration

然而,在任何时候我们都需要知道什么是最新的" (即集成分支的负责人)所以我们在文件夹some_group / some_name上使用一个属性,例如:

{
  "properties" : {
  "integration" : [ "1.1.0-integration" ]
  },
  "uri" : "http://artifactory.url.com:8081/artifactory/api/storage/some_repo/some_group/some_name"
}

关键是"整合"有价值" 1.1.0-integration"。每次我们将pull请求合并到集成分支时,都会使用发布到artifactory的新版本更新该值。

虽然我可以针对API执行纯HTTP HTTP GET以找到我想要尝试的值并从其属性中测试解析工件。

有人可以建议我如何在build.gradle文件中执行此操作吗?

0 个答案:

没有答案