2017-03-26 13 views
0

Jenkinsのインスタンスに接続して情報を取得/ポストするためにJavaを使用してプログラミングしています。私は、ジョブに関する情報(ジョブの名前、合格/不合格のステータス、仕事の記述など)を直接取得するためにメソッドを直接使用できる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

関連する問題