【问题标题】:Use Jenkins-Plugin in Jenkins-Pipeline在 Jenkins-Pipeline 中使用 Jenkins-Plugin
【发布时间】:2017-08-23 11:42:06
【问题描述】:

我正在尝试将 ClearCase UCM Plugin 合并到 Jenkins-Pipeline 中。目前,我正在使用 step-method 来调用 ClearCase-plugin:

step([
    $class: 'hudson.plugins.clearcase.ClearCaseUcmSCM',
    stream: "MY_STREAM",
    loadrules: "load \\SOMETHING\\int load \\OTHER load \\RESOURCES",
    [...]
    changeset: "BRANCH",
    viewStorage: null
])

据我了解插件系统的实例化是使用带有 @DataBoundConstructor 注释的构造函数完成的:

src/main/java/hudson/plugins/clearcase/ClearCaseUcmSCM.java:

@DataBoundConstructor
public ClearCaseUcmSCM(String stream, String loadrules, String viewTag, boolean usedynamicview, String viewdrive, String mkviewoptionalparam,
        boolean filterOutDestroySubBranchEvent, boolean useUpdate, boolean rmviewonrename, String excludedRegions, String multiSitePollBuffer,
        String overrideBranchName, boolean createDynView, boolean freezeCode, boolean recreateView, boolean allocateViewName, String viewPath,
        boolean useManualLoadRules, ChangeSetLevel changeset, ViewStorage viewStorage, boolean buildFoundationBaseline) {

我从一个类似项目的 config.xml 文件中复制了大部分参数(布尔值、字符串、整数)。不幸的是,我得到一个例外: “java.lang.IllegalArgumentException:参数类型不匹配”

我猜是因为我无法创建“ChangeSetLevel”和“ViewStorage”(后者甚至不在 config.xml 中)。

所以我的问题是如何正确调用插件。


另外,我想知道如何正确传递“loadrules”,因为 config.xml 中似乎有换行符:

"load \\SOMETHING\\int[NEWLINE] load \\OTHER[NEWLINE] load \\RESOURCES"

【问题讨论】:

    标签: jenkins jenkins-plugins jenkins-pipeline


    【解决方案1】:

    您可以查看您的工作的管道语法并使用代码段生成器来构建您的step。可以在http://[jenkins-url]/pipeline-syntax找到它。
    更多信息在Jenkins pipeline docs

    【讨论】:

    • 不幸的是,ClearCase 插件的片段生成器中似乎没有条目