jenkins - 尝试在 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(安装在主机上),这样我就可以执行副本来创建标签。
解决方案
推荐阅读
- python - 如何逐步对 NumPy 数组求和
- arrays - Groovy 将字符串数据转换为映射
- python - 如何遍历 CSV 文件中的第一列?
- google-analytics - 坚持通过 GTM 添加 GA 标准电子商务交易
- primefaces - 如何显示 inputtext 的剩余字符?
- java - 在 JTabbedPane 中的错误 JPanel 上显示的 Swing 组件
- reactjs - React - 在我的情况下如何调用弹出窗口?
- linux - Bash 内置的“历史”可以执行,但不在 $PATH 中
- css - 如果项目很少,如何限制网格容器的宽度,但如果有很多则拉伸以填充父项?
- java - 对于 java I/OI 正在从文件中读取,但是当我获取数据并尝试将其发送到另一个方法时,它给了我一个空指针错误