Jenkins не выполняет тестовую задачу gradle, не может найти файлы импорта

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

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?


person roundtheworld    schedule 08.04.2016    source источник


Ответы (2)


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

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

person Radim    schedule 09.04.2016

В вашем случае я бы предложил начать с git clone job-dsl-gradle-example а затем работать оттуда.

person luka5z    schedule 09.04.2016