2017-03-22 30 views
0

我是java空間中的新學習者。我需要使用REST API創建jenkins作業。我可以連接到Jenkins並列出其中的所有作業(GET方法)。我想知道如何發佈到它。如何使用REST API對Jenkins使用Java POST

我的計劃是創建一個帶有輸入數據的json文件來創建作業,而java程序將讀取它(json文件)並將其發佈到Jenkins並創建作業。我搜索了一下關於帖子。我可以看到一些String數據發佈的例子。我如何將json文件數據發佈到Jenkins,並且它在Jenkins中創建了一份工作?

我可以得到一個小的代碼片段,以便我可以參考它或一個示例Java程序?

謝謝

回答

1

你可以看到Jenkins API頁面。您可以使用Jenkins本身提供的文檔填補空白;例如,http://JENKINS_HOST/api會爲您提供創建作業的網址,http://JENKINS_HOST/job/JOBNAME/api會爲您提供觸發構建的網址。

之後,您可以使用Java和Jersey創建一個休息客戶端。

聲明在你的Maven POM

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-client</artifactId> 
    <version>1.8</version> 
</dependency> 

球衣,客戶端,然後用上面的例子的代碼創建客戶端:

import com.sun.jersey.api.client.Client; 
import com.sun.jersey.api.client.ClientResponse; 
import com.sun.jersey.api.client.WebResource; 

public class JerseyClientPost { 

public static void main(String[] args) { 

    try { 

    Client client = Client.create(); 

    WebResource webResource = client 
     .resource("http://JENKINS_HOST/job/JOBNAME/api"); 

    String input = "{\"key1\":\"value1\",\"key2\":\"value2\"}"; 

    ClientResponse response = webResource.type("application/json") 
     .post(ClientResponse.class, input); 

    if (response.getStatus() != 201) { 
     throw new RuntimeException("Failed : HTTP error code : " 
      + response.getStatus()); 
    } 

    System.out.println("Output from Server .... \n"); 
    String output = response.getEntity(String.class); 
    System.out.println(output); 

    } catch (Exception e) { 

    e.printStackTrace(); 

    } 

} 
} 
+0

非常感謝若昂。我會檢查鏈接。 – Raji

+0

我無法達到您提到的JENKINS_HOST(http:// JENKINS_HOST)的鏈接 – Raji

+0

您好Raji。您可以訪問的唯一鏈接是Jenkins API鏈接。其他人是通過堆棧自動創建的,但沒有真正的鏈接。如果我的回答對您有用,請您諒解。 TKS –