jenkins管道脚本出现问题。没有方法签名适用于参数类型:(java.lang.String)values [string]

时间:2019-07-04 11:31:33

标签: jenkins groovy jenkins-pipeline

我有电子邮件类,其中包含loginAndEmaildependency方法:

class Emails{
 static List<String> loginEmaildependency (String login){
  Map<String, String> result = new HashMap<>()
  result.put("abc", "abc@gmail.com")
  result.put("cde", "cde@gmail.com")
  ....
  ....
  if(result.get(login.toLowerCase()) != null){
   return [result.get(login.toLowerCase())]
  }
  else {return ["xxx@gmail.com"]}
 }
}

我还有2个管道脚本:

BuildEmailExt email = null
            if (env.JOB_NAME =~ /TEST-/ || env.JOB_NAME =~ /test-/) {

                def userLogin = currentBuild.rawBuild.getCause(Cause.UserIdCause).getUserId()

                email = new BuildEmailExt(this, Emails.loginEmailDependency(userLogin.toString()))
                    .jobParams(["gitRepoName"         : env.gitRepoName,
                                "gitBranch  "         : env.gitBranch,
                                "skipInstallationTest": env.skipInstallationTest,
                                "skipDeployNexus"     : env.skipDeployNexus,
                                "dockerImageMq"       : dockerImageMq,
                                "dockerImageWas"      : dockerImageWas,
                                "dockerImageDb"       : dockerImageDb])
            } else {
              email = new BuildEmailExt(this, Emails.repoRecipientEmails(gitRepoName))
                    .jobParams(["gitBranch"      : env.gitBranch,
                                "skipGuiTest"    : env.skipGuiTest,
                                "skipDeployNexus": env.skipDeployNexus,
                                "forceWasInstall": env.forceWasInstall,
                                "dockerImageMq"  : dockerImageMq,
                                "dockerImageWas" : dockerImageWas,
                                "dockerImageDb"  : dockerImageDb])
            }


if (env.JOB_NAME =~ /TEST-/ || env.JOB_NAME =~ /test-/) {

            def userLogin = currentBuild.rawBuild.getCause(Cause.UserIdCause).getUserId()

            email = new BuildEmailExt(this, Emails.loginEmailDependency(userLogin.toString()))
                .jobParams(["gitRepoName"         : env.gitRepoName,
                            "gitBranch  "         : env.gitBranch,
                            "skipInstallationTest": env.skipInstallationTest,
                            "skipDeployNexus"     : env.skipDeployNexus,
                            "dockerImageMq"       : dockerImageMq,
                            "dockerImageWas"      : dockerImageWas,
                            "dockerImageDb"       : dockerImageDb])
        } else {
            email = new BuildEmailExt(this, Emails.Teams())
                .jobParams(["gitBranch"      : env.gitBranch,
                            "skipGuiTest"    : env.skipGuiTest,
                            "skipDeployNexus": env.skipDeployNexus,
                            "forceWasInstall": env.forceWasInstall,
                            "dockerImageMq"  : dockerImageMq,
                            "dockerImageWas" : dockerImageWas,
                            "dockerImageDb"  : dockerImageDb])
        }

在第二个脚本中,我使用此脚本,并且所有工作均成功完成,但是在第一个脚本中,我得到了例外:方法的无签名:java.lang.Class.loginAndEmailDependency()适用于参数类型:(java.lang.String)值:[abc]

这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

代码没问题。詹金斯设置有问题。两个脚本的设置不同,在第二个詹金斯中没有看到方法“ loginEmailDependency”