我是jenkins的新手,我正在尝试访问jenkins中的所有作业/项目列表以及他们在java中的项目文件,而不是groovy和解析XML文件。
PS:随意编辑这个帖子!如果低估它就评论原因!
答案 0 :(得分:1)
我是从Jenkins Wiki页面
找到的答案 1 :(得分:0)
我建议您使用其他方法来执行此操作,而不是使用Java。考虑使用Ruby或Python API包装器,Groovy,CLI API,脚本控制台等。有关更多信息,请参阅Remote Access API。
但是如果你仍然需要Java,那么就没有Java API,但是有Rest API。例如,您可以使用某些Java的http客户端进行通信。以下是必需的步骤:
这可以请求http://jenkins_url:port/api/json?tree=jobs[name,url]
。
回应示例:
{
"jobs" : [
{
"name" : "JOB_NAME1",
"url" : "http://jenkins_url:port/job/JOB_NAME1/"
},
{
"name" : "JOB_NAME2",
"url" : "http://jenkins_url:port/job/JOB_NAME2/"
},
...
}
从那里你可以检索工作名称和网址。
有工作网址,请从job_url/lastSuccessfulBuild/artifact/*zip*/archive.zip
下载
有工作网址,请从job_url/JOB_NAME1/ws/*zip*/workspace.zip
下载
请注意,其中一些操作需要正确的Jenkins凭据,匿名访问。否则,请求将失败。
有关您Jenkins可用的Rest API的详细信息:http://jenkins_url:port/api/
答案 2 :(得分:0)
像@Vitalii一样,在groovy或其他一些脚本语言中做得更好,或者解析api / xml文件以获取工作区作业列表。
对于您的情况,您可以让您的类扩展Trigger并使用类触发器的作业对象。
注意:包含jenkins插件所需的所有其他默认类,并确保插件每分钟运行一次,以使此代码正确执行。
public class xyz extends Trigger<BuildableItem>
{
@Override
public void run()
{
LOGGER.info("Project Name"+job.getName());
}
}