神器版本在神器中搜索

时间:2014-04-08 19:59:35

标签: http groovy artifactory

我使用的是神器版3.0.4。我需要根据groupId:artifacId:*计算指定工件的版本列表。

这似乎可以使用REST和神器的商业版本:

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-ArtifactVersionSearch

我在一个时髦的脚本中有以下内容:

@Grab(group='org.apache.httpcomponents', module='httpclient', version='4.3.2' )
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.HttpEntity;
import org.apache.http.util.EntityUtils
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;

def url = "http://artifactory:8089/artifactory/agg/libs-snapshot-local/com/mygroup/my-artifact/";
HttpGet request = new HttpGet(url);
DefaultHttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(request);

HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity, "UTF-8");
println responseString

但是responseString中my-artifact的版本被淹没在无关信息中。有什么建议可以执行更明智的请求,还是我需要解析那个丑陋的字符串?

1 个答案:

答案 0 :(得分:2)

您要求的具体电话确实需要神器专业版。 这意味着什么:

  

在开始工作之前,您应该比较实施它的成本   与购买它的成本(确保你考虑可能的机会)   浪费时间实施其他“专业”API功能)

如果您的时间仍然变得更便宜(如果我理解正确的意图) 给定工件名称和组ID,您需要获取版本列表。

你能做的就是编写一个实现“pro”api调用的方法。 意思是:

  1. children_list = /api/storage/<repo>/<group id split by slashes>/<your artifact>/ | grep folder ="true"
  2. 你可以(应该?)检查孩子是否真的有子女(建筑物)
  3. 查看列表项,并创建包含子项的版本列表
  4. 希望我不要太困惑: - )