2014-01-13 27 views
0

我已經下載並配置Jenkins在服務器中,我的問題是我需要通過Java訪問Jenkins來執行某些過程,例如啓動作業,返回當前工作作業並返回服務器中的作業列表(所有使用Json)我試過了幾個代碼,如this,但即時通訊沒有得到任何結果,我也找不到明確的方法來實現這一點,是否有任何明確的API和示例來做到這一點?如何在使用java的Jenkins中獲取作業列表?

回答

1

可以使用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"))); 
      } 
     } 
    } 

一個完整的例子(有源)可以發現​​。

如果這些示例不起作用,您可能在Jenkins Security(您的客戶端必須提供登錄數據,然後才能發送請求)或CSRF保護方面出現問題(必須在第一個請求之前檢索令牌並添加該令牌作爲每個請求的參數)。

+0

謝謝@stefan你已經回答了我的問題,但如何在jenkins中創建一個工作我試過這個http:// hudsonserver:8080/createItem?name = newjobname「但它不起作用 – user1283633

+0

正確URL應如下所示:「HUDSON_URL/job/JOBNAME/build?token = TOKEN」(有關詳細信息,請參閱https://wiki.eclipse.org/Using_Hudson/Remote_access_API#Submitting_jobs) –

相關問題