невозможно разрешить класс при вызове метода класса из скрипта через задание Jenkins - PullRequest
0 голосов
/ 18 июня 2019

У меня есть задание в Jenkins, где в рамках действия по сборке я выполняю отличный сценарий, скажем, script A .Из сценария A я пытаюсь выполнить метод Test1 .Оба файла A.groovy и Test1.groovy находятся в одном каталоге.Я получаю ошибку "unable to resolve class" при каждом выполнении задания.

A.groovy

println "****************** TEST : START  *******************************"

println " Environment Variable value is : "
new Test1().printEnv()

println "****************** TEST : END  *******************************"

Я использую Groovy 2.3.6.

Test1.groovy

class Test1{

def printEnv(){

println "****************** TEST inside Test1.groovy : START  *******************************"

println "****************** TEST inside Test1.groovy : END  *******************************"
} 

}

Ошибка:

unable to resolve class Test1 

ПРИМЕЧАНИЕ: Когда я выполняю свой скрипт изза пределами Дженкинс, то это работает.Только когда я пытаюсь выполнить его через Jenkins, он не может найти класс Test1.

Я очень сильно запутался с этим поведением.Есть много сообщений, в которых обсуждается, как устранить ошибку "unable to resolve class Test1".но, похоже, ни один из них не подходит для моего случая, так как звонок в порядке, если он сделан вне Дженкинса.

Я полагаю, что предоставил всю информацию, которую мог.Тем не менее, пожалуйста, не стесняйтесь спрашивать дополнительную информацию, если возникнет такая необходимость.

1 Ответ

0 голосов
/ 18 июня 2019

Если вы используете конвейеры Jenkins, вам нужно загрузить ваш вторичный файл groovy. Вы можете найти документацию о том, как использовать исходные файлы groovy в конвейере здесь .

В вашем случае вы можете сделать что-то вроде:

A.groovy

def test1 = load 'Test1.groovy'
test1.printEnv()

Test1.groovy

class Test1 {
  def printEnv() {
    // TODO
  }
}
return new Test1()

Обратите внимание на return в Test1.groovy, объясненном в документации.

Надеюсь, это поможет

...