如何使用java获取Jenkins中的作业列表?

时间:2014-01-13 08:00:38

标签: java jenkins

我已经在服务器中下载并配置了Jenkins,我的问题是我需要通过Java访问Jenkins来执行某些过程,例如启动作业,返回当前工作作业以及返回服务器中的作业列表(所有这些使用Json)我已经尝试了几个代码,例如this,但我没有得到任何结果,我也找不到明确的方法来实现这一点,是否有任何明确的API和示例来做它?

1 个答案:

答案 0 :(得分:1)

您可以使用Jenkins API over XML:

    import org.dom4j.io.*;
    import org.dom4j.*;
    import java.net.*;
    import java.util.*;

    public class Main {
        public static void main(String[] args) throws Exception {
            URL url = new URL("http://your-hudson-server.local/hudson/api/xml");
            Document dom = new SAXReader().read(url);

            for( Element job : (List<Element>)dom.getRootElement().elements("job")) {
                System.out.println(String.format("Job %s has status %s",
                    job.elementText("name"), job.elementText("color")));
            }
        }
    }

可以找到一个完整的示例(包含来源)here

如果这些示例不起作用,您可能会遇到Jenkins Security问题(您的客户端必须在发送请求之前提供登录数据)或CSRF保护(您必须在第一次请求之前检索令牌并添加此令牌作为每个请求的参数。)