首页 > 解决方案 > 在 Jenkins DSL 中使用 logparser-step 时缺少必需的参数:“parsingRulesPath”

问题描述

我有一个包含 logparser-step 的 Jenkins-Freestyle-job:

在此处输入图像描述

现在我想使用描述性管道语法将此作业转换为管道。因此,我使用了截断的生成器,它给了我上面的输入:

logParser projectRulePath: 'C:\\Program Files (x86)\\Jenkins\\consoleparser.config.properties', showGraphs: true, unstableOnWarning: true, useProjectRule: true

但是,当我执行该作业时,出现以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 139: Missing required parameter: "parsingRulesPath" @ line 139, column 15.
                    logParser ([
                 ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
    at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
    at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
    at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
    at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
    at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:571)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:523)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:337)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:428)

我真的不知道全局规则和项目规则之间的区别是什么。然而,由于我的自由式工作按预期工作,我也只是将项目规则用于管道。

我正在使用日志解析器插件 2.1

编辑:我将插件降级到 2.0,这似乎解决了这个问题。

标签: jenkinsjenkins-pipelinejenkins-declarative-pipeline

解决方案


似乎是不创建强制属性的 snipped-generator 中的错误parsingRulesPath,或者在 2.1 版的插件中,就像在 v2.0 中一样。

我们可以通过提供属性来解决这个问题parsingRulesPath

logParser ([
    projectRulePath: 'C:\\Program Files (x86)\\Jenkins\\consoleparser.config.properties', ,
    parsingRulesPath: '',
    showGraphs: true, 
    unstableOnWarning: true, 
    useProjectRule: true
])

https://issues.jenkins.io/browse/JENKINS-27208中已经提到了类似的东西,但是以某种方式projectRulePath缺失。


推荐阅读