0
我已經下載並配置Jenkins在服務器中,我的問題是我需要通過Java訪問Jenkins來執行某些過程,例如啓動作業,返回當前工作作業並返回服務器中的作業列表(所有使用Json)我試過了幾個代碼,如this,但即時通訊沒有得到任何結果,我也找不到明確的方法來實現這一點,是否有任何明確的API和示例來做到這一點?如何在使用java的Jenkins中獲取作業列表?
我已經下載並配置Jenkins在服務器中,我的問題是我需要通過Java訪問Jenkins來執行某些過程,例如啓動作業,返回當前工作作業並返回服務器中的作業列表(所有使用Json)我試過了幾個代碼,如this,但即時通訊沒有得到任何結果,我也找不到明確的方法來實現這一點,是否有任何明確的API和示例來做到這一點?如何在使用java的Jenkins中獲取作業列表?
可以使用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保護方面出現問題(必須在第一個請求之前檢索令牌並添加該令牌作爲每個請求的參數)。
謝謝@stefan你已經回答了我的問題,但如何在jenkins中創建一個工作我試過這個http:// hudsonserver:8080/createItem?name = newjobname「但它不起作用 – user1283633
正確URL應如下所示:「HUDSON_URL/job/JOBNAME/build?token = TOKEN」(有關詳細信息,請參閱https://wiki.eclipse.org/Using_Hudson/Remote_access_API#Submitting_jobs) –