【问题标题】:Converting a gstringimpl to java.lang.string in a Jenkinsile在 Jenkinsile 中将 gstringimpl 转换为 java.lang.string
【发布时间】:2022-11-12 17:13:26
【问题描述】:

我有一个接受持久字符串参数输入的管道。然后管道检查参数值是否存在于列表中。

问题是坚持细绳gstringimpl 类型,列表项是java.lang.string 类型。当我使用.contains() 方法时,即使值在列表中,它也不会返回true,我认为这是由于不同的数据类型。

我已经在网上尝试了所有方法,包括 toString() 方法,但我无法让它工作。我在下面附上我的代码。

String ver = ""
pipeline {
    agent {
        docker{
            image 'registry/abc/builder:0.1.5'
            args '-t -d -v maven-m2-cache:/home/node/.m2'
        }
    }
    parameters {
        persistentString(name: 'Version', defaultValue: '8.4.7.8', description: 'Version to build', successfulOnly: false)
    }
    stages {
        stage('Analyze Parameter'){
            steps{
                script{
                        ver = "${Version}".toString()
                    }
                }
            }
        stage('Build'){
            steps{
                script{
                    def version_list1 = ['8.4.7.8','8.3.7.9','8.5.4.7']                    
                    if (version_list1.contains("${ver}")){
                            println("build version branch")
                    } else {
                        println("${ver}")
                        println("${ver}".getClass())
                        println(version_list1[0])
                        println(version_list1[0].getClass())
                        println("build master branch")                            
                    }

                }
            }
        }
    }
}

管道总是进入 else 块并打印以下内容:

8.4.7.8

类 org.codehaus.groovy.runtime.GStringImpl

8.4.7.8

java.lang.string

建立主分支

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline jenkins-groovy jenkins-declarative-pipeline


    【解决方案1】:

    不要使用字符串插值来解析参数。而是像params.PARAM_NAME 那样直接访问它,例如下面的示例。

    script{
          def version_list1 = ['8.4.7.8','8.3.7.9','8.5.4.7']                    
          if (version_list1.contains(params.Version)){
                  println("build version branch")
          } else {
              println("build master branch")                            
          }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      • 2023-03-18
      • 2020-11-14
      • 2019-02-05
      • 1970-01-01
      • 2021-08-22
      相关资源
      最近更新 更多