Проблема с конвейерным скриптом Дженкинса. Подпись метода не применима для типов аргументов: (java.lang.String) values ​​[string] - PullRequest
0 голосов
/ 04 июля 2019

У меня есть электронные письма класса, которые содержат метод 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 голосов
/ 09 июля 2019

Это не было проблемой с кодом. Это была проблема с настройками Дженкинса. Два скрипта имели разные настройки и во втором jenkins не видел метод "loginEmailDependency"

...