首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jenkins在构建Python脚本时“无法解决类声明性”错误

Jenkins在构建Python脚本时“无法解决类声明性”错误
EN

Stack Overflow用户
提问于 2021-12-23 07:51:00
回答 1查看 605关注 0票数 1

我开始学习如何使用Jenkins,并想让它自动运行我的Python脚本。我按照他们的教程创建了一个名为Pipeline Test的新项目。

我还添加了我想测试的Python的GitHub回购(https://github.com/mateasmario/spam-bot)。

如您所见,我已经在回购中创建了一个Jenkinsfile。因为我的脚本名为spam-bot.py,所以每次单击Jenkins内部的“立即构建”时,我都希望Jenkinsfile运行该脚本。这是我的Jenkinsfile的内容:

代码语言:javascript
复制
Jenkinsfile (Declarative Pipeline)
pipeline {
    agent { docker { image 'python:3.10.1-alpine' } }
    stages {
        stage('build') {
            steps {
                sh 'python spam-bot.py'
            }
        }
    }
}

问题是,每当我单击“立即生成”,我的构建就会失败,控制台输出以下错误:

代码语言:javascript
复制
Started by user Mario Mateas
Obtained Jenkinsfile from git https://github.com/mateasmario/spam-bot.git
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 1: unable to resolve class Declarative 
 @ line 1, column 26.
   Jenkinsfile (Declarative Pipeline)
                            ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:958)
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605)
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:554)
    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:334)
    at hudson.model.ResourceController.execute(ResourceController.java:99)
    at hudson.model.Executor.run(Executor.java:432)
Finished: FAILURE

我在网上查找了这个错误,但没有发现任何有用的信息,这就是我决定在这里问的原因。我也没有配置任何Docker容器。我需要配置一个吗?我查看了Jenkins关于Docker的文档,但是没有看到向容器中添加Python映像的任何有用信息(如Jenkinsfile开头提到的那样)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-23 12:01:06

您的Jenkinsfile在第一行包含无效的语法,这就是抛出错误的原因。假设您希望第一行是注释,则可以将管道代码修改为:

代码语言:javascript
复制
// Jenkinsfile (Declarative Pipeline)
pipeline {
  ...
}

您的管道代码将具有有效的语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70459146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档