You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkinsfile传递$options字符串参数报NullPointerException错误咨询

问题原因

  • 你没有在Pipeline开头声明options字符串参数,Jenkins读取不存在的变量时就会触发空指针异常
  • 你的sh步骤语法存在两处错误:
    1. 单引号包裹的内容Jenkins不会做变量插值,$options不会被解析成对应参数值
    2. 行末的引号用错,把单引号写成了反引号

修复后的完整代码

需要先在pipeline块最前面新增parameters块声明options参数,再修正sh步骤的写法:

pipeline {
  agent {
    docker {
      image 'babylon_ansible:latest'
      args '-u root'
    }
  } 
  // 新增参数定义块
  parameters {
    string(name: 'options', defaultValue: '', description: '传入babylondumps命令的参数')
  }
  stages {
    stage('ansible playbook') {
      steps {
        script {
          withCredentials([string(credentialsId: 'babylondumpspwd', variable: 'db_pass')]) {
            sh 'pwd'
            // 修正sh写法:用双引号包裹才能解析变量,修正引号闭合错误
            sh "babylondumps ${options}"
          }
        }
      }
    }
  }
}

注意事项

  • 第一次运行修改后的流水线前,需要先保存Jenkins job配置,触发一次运行后参数才会生效,之后运行时就可以在启动页填写options的参数值
  • 如果需要在命令里同时使用shell变量和Jenkins变量,注意区分:Jenkins变量用${变量名}写在双引号里,shell变量要用\${变量名}转义

内容的提问来源于stack exchange,提问作者karthick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:00:01