2016-04-08 7 views
1

Я использую Jenkins для запуска gradlew в качестве шага сборки. build.gradle имеет тестовую задачу. Когда тестовая задача выполняется, она терпит неудачу, потому что файл Groovy, который он пытается скомпилировать, имеет 5 import операторов вверху. Эти классы - это те, которые я создал в подпапке. Однако, когда я использую плагин Job DSL для создания Jenkins Jobs с использованием тех же файлов Groovy, он работает отлично. Ниже ошибка я вижу:Jenkins неудачная задача теста градации, не может найти файлы импорта

09:32:31.930 [DEBUG] [TestEventLogger] debug.JobScriptsSpec > test script JenkinsJobs.groovy FAILED 
09:32:31.930 [DEBUG] [TestEventLogger]  Expected no exception to be thrown, but got 'javaposse.jobdsl.dsl.DslException' 
09:32:31.930 [DEBUG] [TestEventLogger]   at spock.lang.Specification.noExceptionThrown(Specification.java:118) 
09:32:31.930 [DEBUG] [TestEventLogger]   at debug.JobScriptsSpec.test script #file.name(JobScriptsSpec.groovy:31) 
09:32:31.930 [DEBUG] [TestEventLogger] 
09:32:31.930 [DEBUG] [TestEventLogger]   Caused by: 
09:32:31.930 [DEBUG] [TestEventLogger]   javaposse.jobdsl.dsl.DslException: startup failed: 
09:32:31.945 [DEBUG] [TestEventLogger]   script: 1: unable to resolve class utilities.GitConfiguration 
09:32:31.945 [DEBUG] [TestEventLogger]   @ line 1, column 1. 
09:32:31.945 [DEBUG] [TestEventLogger]   import utilities.GitConfiguration 
09:32:31.945 [DEBUG] [TestEventLogger] 

Я подражая, что делается здесь: https://github.com/sheehan/job-dsl-gradle-example принять к сведению раздел «Тестирование».

Я попытался добавить к классам, выполнив следующие действия, но я все еще получаю ту же ошибку:

buildscript { 
    dependencies { 
     classpath files('/jobs/utilities') 
    } 
} 

Моя основная структура файла заключается в следующем:

jenkins-jobs 
    |-build.gradle 
    |-jobs 
    |-JenkinsJobs.groovy 
     |-utilities 
      |-GitConfiguration.groovy 
      |-other groovy files I try to import 

В двух словах, вопрос, который я Я пытаюсь спросить, как я могу сделать Gradle счастливым, пытаясь включить пользовательский импорт в мои файлы Groovy?

ответ

2

Вместо jobs/utilities поместить эти источники под buildSrc/src/main/groovy

Это место для пользовательских построить источники, которые будут строить Gradle автоматически и будут доступны в ваших скриптах. Это хорошо описано в руководстве пользователя - https://docs.gradle.org/current/userguide/custom_plugins.html