2014-04-08 41 views
0

我正在使用artifactory版本3.0.4。我需要根據groupId:artifacId:*計算指定工件的版本列表。神器版本在artifactory中搜索

這似乎可以利用REST和artifactory的商用版本:

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

我已經在Groovy腳本如下:

@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是淹沒在無關的信息中。任何建議來執行一個更明智的請求還是我需要解析這個醜陋的字符串?

回答

2

您詢問的具體調用確實需要artifactory pro。 這意味着:

它的工作之前,你應該比較實現它 與買它的成本費用(請確保您考慮的 可能的機會對實現其他「親」 API功能浪費時間)

如果你的時間仍然會導致更便宜, 定工件名稱和組ID,你想要得到的版本的列表(如果我理解正確的意圖)。

你可以做的是寫一個實現「pro」api調用的方法。 含義:

  1. children_list = /api/storage/<repo>/<group id split by slashes>/<your artifact>/ | grep folder ="true"
  2. 你可以(應該?)檢查孩子是否真的有subchildren(內置文物)
  3. 打開名冊項目,並創建版本與subchildren
  4. 名單

希望我不是太混亂:-)

相關問題