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

标签 java jenkins

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

最佳答案

您可以使用Jenkins API通过 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 安全性(您的客户端必须提供登录数据才能发送请求)或 CSRF 保护(您必须在第一个请求之前检索 token 并添加此 token 作为每个请求的参数)。

关于java - 如何使用java获取Jenkins中的工作列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086380/

相关文章:

java - 从 Jenkins 运行 JunitCore.runClasses

java - 为什么我的数组不满足该 if 语句的条件?

jenkins - 在果冻模板中访问自定义环境变量

java - 设置/配置 EJB 定时器服务的数据源

java - 将日期列表转换为日期范围字符串

Jenkins 管道条件分支构建

jenkins - 有没有办法在 Jenkins 中获取 Gitlab 管道工件?

linux - 在 Jenkins 中找不到环境变量

java - 动态 JComboBox

java - 如何在处理中的不同时间间隔后触发不同的事件?