当前位置: 首页 > 面试题库 >

如何使用Java获取Jenkins的工作清单?

尚恩
2023-03-14
问题内容

我已经在服务器中下载并配置了Jenkins,我的问题是我需要通过Java访问Jenkins来执行一些过程,例如开始工作,返回当前工作任务以及返回服务器中的工作列表(全部使用Json)我试过几个代码,例如这个,但即时得到任何结果,也是我无法找到一个明确的方式来做到这一点,是有任何明确的API和例子办呢?


问题答案:

您可以通过XML 使用Jenkins API:

    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")));
            }
        }
    }

可以在此处找到完整的示例(包括源代码)。

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



 类似资料:
  • 问题内容: 我有没有节点的Jenkins安装程序,所有构建都在同一台机器上运行。我想设置一个Groovy脚本来清理旧的工作区,所以我想使用: 当掌握时,我应该赋予什么价值? 问题答案: 执行以下脚本,使用清理所有Jenkins工作区:

  • 问题内容: 我正在尝试制作一个Jenkins插件。您如何从插件获取工作信息?我知道 但是,我不知道如何调用此方法。 问题答案: 我编写了以下常规脚本,以从工作中获取所有内部版本号。 该工作詹金斯API可以给你额外的手柄,以获取有关作业的信息

  • 问题内容: 我需要针对我们的Jenkins构建集群生成每周报告。报告之一是显示构建时间最长的作业列表。 我能想到的解决方案是解析每个从属服务器(也是主服务器)上的“构建历史”页面,对于作业的每个构建,都解析该构建页面并查找“ slave-xx上的x x min x sec”。 感觉很麻烦,有人知道使用Jenkins API或Groovy脚本控制台有更好的解决方案吗? 谢谢 问题答案: 您可以通过J

  • 问题内容: 在Java API中,我可以从Run.java对象访问工作区路径:(直到今天,所有对象都是hudson.model.AbstractBuild的实例) hudson.model.AbstractBuild#getWorkspace() hudson.model.Run#getExecutor()。getCurrentWorkspace() 在Pipeline插件中,我无权访问工作空间,

  • 我可以得到代币,列出(我的)回购,并列出他们的图像和标签。 我想“获取清单”,但我很难让它工作:https://docs.docker.com/registry/spec/api/#manifest: 我尝试过没有头。具有标头的各种值。但是,我显然错过了什么。我尝试了对工作endpoint的模式匹配,但没有乐趣: 一时兴起,我尝试了“Get manifest”对GCR的攻击,请求奏效了:

  • 问题内容: 我有一个参数化的詹金斯工作正在访问我的插件。 在Java的插件代码内部,我需要使用这些参数才能 触发jenkins中的另一项工作。我无法获取这些参数,现在这 是一个非常高优先级的问题。我尝试过 stackoverflow上可用的多种解决方案,例如,尝试访问环境变量, 但未收到参数的值。例如,我的参数是“ REPOS”,我 需要它的值,我尝试过: 但它返回null。 另外,尝试: 但它会