Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我对Jenkins管道脚本有问题。类WorkFlowScript没有此类属性_Jenkins_Groovy_Jenkins Pipeline - Fatal编程技术网

我对Jenkins管道脚本有问题。类WorkFlowScript没有此类属性

我对Jenkins管道脚本有问题。类WorkFlowScript没有此类属性,jenkins,groovy,jenkins-pipeline,Jenkins,Groovy,Jenkins Pipeline,当我创建新作业时,jenkins会将此作业的结果发送给所有团队的电子邮件,但当我们创建测试作业时(我们可以通过作业的名称来理解),我们应该只向作业的创建者发送电子邮件。 是这样的,它起作用了: pipe(..){ timeout(..){ BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams()) someCode.. } } 然后,如果: pipe(..){ timeout(..){ if(en

当我创建新作业时,jenkins会将此作业的结果发送给所有团队的电子邮件,但当我们创建测试作业时(我们可以通过作业的名称来理解),我们应该只向作业的创建者发送电子邮件。 是这样的,它起作用了:

pipe(..){
 timeout(..){
  BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams())
  someCode..
  }
}
然后,如果:

  pipe(..){
   timeout(..){
   if(env.JOB_NAME =~ /somePattern/){
    BuildEmailExt email = new BuilEmailExt(this, SENDER)
   }
   else{
    BuildEmailExt email = new BuilEmailExt(this, Emails.allTeams())
   }
   someCode..
  }
}
我得到一个例外:类:WorkFlowScript没有这样的属性电子邮件
我做错了什么?

通过在
if
else
中定义变量,它不存在于该范围之外,因此无法在条件之外访问

可以将定义移到if之外,然后将其设置为:

pipe(..){
    timeout(..){
        BuildEmailExt email
        if(env.JOB_NAME =~ /somePattern/){
            email = new BuilEmailExt(this, SENDER)
        }
        else {
            email = new BuilEmailExt(this, Emails.allTeams())
        }
        someCode..
    }
}
您也可以这样做,这样看起来更干净(ymmv)


我们需要更多的上下文来回答这个问题,例如这是否是一个有效的构造函数,
email
对象以后可能会在哪里使用(如果是无效的代码),以及该代码被封装在哪里。@MattSchuchard email在我们添加一些关于作业的信息时在这个脚本中使用:email.addBodyBlock(someEntryMap)。最后我们会发送电子邮件
pipe(..){
    timeout(..){
        BuildEmailExt email = new BuilEmailExt(this, (env.JOB_NAME =~ /somePattern/) ? SENDER : Emails.allTeams())
        someCode..
    }
}