2017-03-22 28 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 –