【问题标题】:Execute SQL*Plus script via Jenkins and bat command通过 Jenkins 和 bat 命令执行 SQL*Plus 脚本
【发布时间】:2017-11-15 17:06:10
【问题描述】:

在我的 Jenkins Pipeline 脚本中,我有一个名为 orderedScripts 的映射,其中包含整数键 (1-11),每个键的值都是列表。列表中的项目是 sql 脚本的绝对路径。

我循环遍历映射,然后遍历每个键的列表,通过 sqlplus 执行列表中的项目。下面的代码 sn-p,其中<credentials> 是使用的数据库凭据。

orderedScripts.each {
        key, value -> for(item in value){ 
            bat "sqlplus <credentials> @'${item}'" 
        }
    }

但是,当 Jenkins 运行作业时,我收到以下 Serilizable 错误:

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)
at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.util.HashMap.internalWriteEntries(Unknown Source)
at java.util.HashMap.writeObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

如果我用普通的 println() 打印出 ${item} 变量,那么它会显示正确的脚本路径。所以循环正在工作,并确定要运行的正确脚本,Jenkins 只是不会通过 bat 命令运行它们。如果我打印出脚本中的路径,然后手动将其复制并粘贴到 sqlplus 会话中,它将按预期执行。

据我所知,这似乎是我在 bat 命令中引用 ${item} 变量的方式。但我无法让它执行,引用不同的变化。有没有人遇到过这种情况,或者知道我做错了什么?

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline jenkins-groovy


    【解决方案1】:

    在这里回答我自己的问题..

    问题与Serialization Problems In Global Function有关

    这指向 Github 上的以下 Jenkinsfile 示例: Jenkins File example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 2015-10-30
      相关资源
      最近更新 更多