首页 > 解决方案 > 尝试在 Jenkins Pipeline 中的 svn 中创建标签

问题描述

我在脚本化的 Jenkins 管道中的 Groovy 变量中有源和目标 svn url。在打印时,两者都显示正确的值。我在 Windows 上,我尝试运行 svn copy 命令来创建标签

bat 'svn 复制 ${svnURL} ${tagURL}'

但是我得到了错误..

[Pipeline] End of Pipeline
an exception which occurred:
    in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@7eb70986
    in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@7a1e0a2f
    in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@5a746986
    in field com.cloudbees.groovy.cps.impl.CallEnv.caller
    in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@593fe377
    in field com.cloudbees.groovy.cps.Continuable.e
    in object org.jenkinsci.plugins.workflow.cps.SandboxContinuable@373f7902
    in field org.jenkinsci.plugins.workflow.cps.CpsThread.program
    in object org.jenkinsci.plugins.workflow.cps.CpsThread@400c27db
    in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.threads
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@740ee2d9
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@740ee2d9
Caused: java.io.NotSerializableException: hudson.scm.SubversionChangeLogSet
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:569)

SVN 命令行工具安装在主机上,在命令提示符下键入 svn 即可。

bat 'svn copy %svnURL% %tagURL%' 也会导致同样的错误。

编辑

看起来 svn 是这里的淘气关键字。变量访问不是罪魁祸首。甚至

bat 'svn help'

给出了同样的错误。所以我想问题是如何在管道中调用 svn(安装在主机上),这样我就可以执行副本来创建标签。

标签: jenkinssvngroovyjenkins-pipeline

解决方案


推荐阅读