使用Java客户端实时从jenkins检索构建日志

对于某些任务,我需要实时从jenkins获取构建日志。我正在使用以下代码来检索日志。但是,这样做的问题是,由于我实时运行以下代码(运行jenkins作业时),因此我会得到部分数据,因为构建日志会随着作业的进行而不断更新。例如,假设作业从下午12点开始,持续10分钟,当下面的代码在下午12:01运行时,它只会得到部分日志,因为日志会随着作业的进行而不断追加。

有没有一种有效的方法来保持轮询并获取每个请求的所有增量。

谢谢。

public static InputStream getInputStream(){

        URL urls = null;
        try {
            urls = new URL("https://jenkins-prod/job/Tests/job/Pipeline_Tests/lastBuild/consoleText");
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        HttpURLConnection connection = null;
        try {
            connection = (HttpURLConnection) urls.openConnection();
        } catch (IOException e) {
            e.printStackTrace();
        }
        connection.setDoOutput(true);
        connection.setRequestProperty("User-Agent","Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
        System.setProperty("http.agent","Chrome");
        connection.setInstanceFollowRedirects(false);
        try {
            connection.setRequestMethod("GET");
        } catch (protocolexception e) {
            e.printStackTrace();
        }
        connection.setRequestProperty("Content-Type","application/json");

        try {

            BufferedReader br = new BufferedReader(new InputStreamReader(
                    (connection.getInputStream())));

              String line;
              do {
                  line = br.readLine();
                  System.out.println(line);
                  System.out.flush();
              } while  ((line = br.readLine())!= null);

            return connection.getInputStream();

        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }
hacldt 回答:使用Java客户端实时从jenkins检索构建日志

如果真的需要通过程序实时读取构建日志(构建正在运行时);假设您将读取作业“ A”的日志

  • 定义对作业“ A”的预构建操作,该操作将启动您的“侦听器” 程序开始构建之前。
  • 预构建将启动您的侦听器,然后,如果您可以在短时间内收听,您将赶上构建开始的时间。

但是,如果要求在构建完成后可以拥有内容的方式上有所不同,则可以使用此类插件将构建日志内容发送到任何地方。一个示例https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin插件可以发送电子邮件。

本文链接:https://www.f2er.com/3149408.html

大家都在问