我如何检索可用于工作的所有Jenkins构建步骤的列表? [英] How can I retrieve a list of all Jenkins build steps available to a job?
本文介绍了我如何检索可用于工作的所有Jenkins构建步骤的列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在寻找一种方法来获取Jenkins作业的所有可用构建步骤的列表.
I'm currently looking for a way to get a list of all available build steps for a Jenkins job.
Kinda喜欢:
FreeStyleProject newJob = Jenkins.getInstance().createProject( FreeStyleProject.class, this.jobName );
// TODO: Get the available build steps of the created job, following is pseudocode
newJob.getAvailableBuilders();
提前谢谢!
推荐答案
好吧,显然Builder.all()
确实存在.
这解决了我的问题:
List<BuildStepDescriptor<? extends Builder>> builders = new ArrayList<BuildStepDescriptor<? extends Builder>>();
for ( hudson.model.Descriptor<Builder> descriptor : Builder.all() ) {
if ( !( descriptor instanceof BuildStepDescriptor ) ) {
continue;
}
BuildStepDescriptor<? extends Builder> buildStepDescriptor = (BuildStepDescriptor) descriptor;
// newJob is a FreeStyleProject
if ( buildStepDescriptor.isApplicable( newJob.getClass() ) && hasDbc( buildStepDescriptor.clazz ) ) {
builders.add( buildStepDescriptor );
}
}
for ( BuildStepDescriptor<? extends Builder> buildStepDescriptor : builders ) {
System.out.println( buildStepDescriptor.getDisplayName() );
}
private boolean hasDbc( final Class<?> clazz ) {
for ( Constructor<?> constructor : clazz.getConstructors() ) {
if ( constructor.isAnnotationPresent( DataBoundConstructor.class ) ) {
return true;
}
}
return false;
}
这篇关于我如何检索可用于工作的所有Jenkins构建步骤的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文