2017-03-26 30 views
0

我使用Java進行編程以連接到Jenkins實例並獲取/發佈少量信息。我正在使用jar,它允許我直接使用方法來獲取有關作業的信息(作業名稱,通過/失敗狀態,作業說明等)。當我使用返回布爾值或數字或url的任何方法時,它工作正常。但是當返回類型是String時,它會以不同的格式輸出。如何修復Java中的字符串輸出:[email protected]

找到下面的代碼:

import com.offbytwo.jenkins.*; 
import com.offbytwo.jenkins.client.*; 
import com.offbytwo.jenkins.model.*; 

import java.io.IOException; 
import java.net.URI; 
import java.net.URISyntaxException; 
import java.util.Map; 

public class NewTest { 


    public static void main(String[] args) throws URISyntaxException, IOException { 
     System.out.println("begin"); 
     JenkinsServer server = new JenkinsServer(new URI("https://my-jenkins.abc.com/job/MyJobs/job/Dev/job/Test/"), "userid", "token"); 

     Map<String, Job> jobs = server.getJobs(); 
     for (Map.Entry<String, Job> entry : jobs.entrySet()) 
     { 

      String name = entry.getKey(); 
      JobWithDetails jobdet = jobs.get(name).details(); 
      System.out.println("Job Links"); 
      System.out.println(jobdet.getUrl()); 
      System.out.println("Next Build Number"); 
      System.out.println(jobdet.getNextBuildNumber()); 
      System.out.println("Detail by build number"); 
      System.out.println(jobdet.getBuildByNumber(1)); 


     } 

    } 

輸出:

after begin 
Job Links 
https://my-jenkins.abc.com/job/MyJobs/job/Dev/job/Test/job/git_test/ 
Next Build Number 
4 
Detail by build number 
[email protected] 

我怎樣 「的集結號詳細信息」,在正確的格式?我使用的toString()函數,但它把我error.I是越來越相同的格式錯誤與JobWithDetails jobdet = jobs.get(name).details();

JobWithDetails jobdet = jobs.get(name).details().toString(); 

它仍然給了我下面的輸出:獨立,但我

[email protected] 

我試圖定義的toString()不知道我應該返回什麼,並且toString()我定義的外部不能訪問主函數內部的變量。我該如何解決?

謝謝。

回答

0

您正在嘗試打印整個Build對象,該對象(您已經注意到)沒有覆蓋toString()。因此它會打印出您在那裏看到的無用的東西。

您需要決定要打印的Build的哪些屬性。例如,如果它是您想要的構建URL,您需要打印此:

System.out.println(jobdet.getBuildByNumber(1).getUrl()); 
+0

謝謝喬。我看到.getUrl()在函數getBuildByNumber()中列出,但它會引發錯誤。當我嘗試使用「jobdet = jobs.get(name).details()。toString();」它給了我那個未格式化的輸出。 – Raji

相關問題