【问题标题】:Jenkins plugin get list of builders in multy builders plugin - return hudson.maven.MavenModuleSet cannot be cast to hudson.model.ProjectJenkins插件获取多个构建器插件中的构建器列表-返回 hudson.maven.MavenModuleSet 不能转换为 hudson.model.Project
【发布时间】:2014-12-30 13:32:57
【问题描述】:

我正在编写包含 2 个构建器(builderA 和 builderB)的 Jenkins 插件 builderA 有几个输入字段,将在 builderB 之前添加到 Jenkins 作业中 builderB 没有输入

我在builderB.perform(AbstractBuild build, Launcher launcher, BuildListener listener)期间使用以下代码从builderA中提取信息

//loop on all the builders in this project and find  BuilderA
//from there we taking the CI/Release
String component;
String version;
Project buildProject = (Project) build.getProject();
List<Builder> blist = buildProject.getBuilders();
for (Builder b : blist) {
    if (b instanceof BuilderA) {
        listener.getLogger().println("BuilderA was found!!);
        BuilderA ba = (BuilderA) b;
        component = ba.getComponent();
        version = ba.getVersion();
        break;
    }
}

如果我创建 Freestyle 项目,这将非常有用。

如果我创建 Maven 项目 行:Project buildProject = (Project) build.getProject(); throws" java.lang.ClassCastException: hudson. maven.MavenModuleSet 无法转换为 hudson.model.Project

问题:如何获取Maven项目中的Builder列表。

【问题讨论】:

    标签: maven plugins jenkins


    【解决方案1】:

    我设法解决了这个问题。我更改了我的代码以支持 2 种不同的 Jenkins 作业类型:

    List<Builder> blist = new ArrayList<Builder>();
    if (build.getProject() instanceof hudson.maven.MavenModuleSet) {
      listener.getLogger().println("Build type: hudson.maven.MavenModuleSet");
      MavenModuleSet mms = (MavenModuleSet) build.getProject();
      DescribableList<Builder, Descriptor<Builder>> dl = mms.getPrebuilders();
      Collection<Builder> c = dl.toMap().values();
      blist.addAll(c);
    }
    else if (build.getProject() instanceof hudson.model.Project) {
      listener.getLogger().println("Build type: hudson.model.Project");
      Project<?, ?> buildProject = (Project<?, ?>) build.getProject();
      blist = buildProject.getBuilders();
    }
    

    还在 pom.xml 中添加了对:

    groupId=org.jenkins-ci.main
    artifactId=maven-plugin
    version=2.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2017-05-06
      相关资源
      最近更新 更多