Создание конвейера Jenkins с использованием многопроектной сборки gradle - PullRequest
0 голосов
/ 22 октября 2018

У меня есть мультипроектная сборка Gradle, работающая локально.Существует родительский файл Gradle, build.gradle Файл settings.gradle присваивает проекты соответствующим файлам сборки Gradle:

include 'load'
include 'loadRemote' 

project(':loadRemote').buildFileName = 'remoteLoad_build.gradle'
project(':load').buildFileName = 'load_build.gradle' 

rootProject.name = 'EquipLoad'

Родительский файл build.gradle вызывает команду buildAll для сборки 2.проекты из командной строки локально.Я создал файл Jenkins для создания обоих проектов.Но конвейер Дженкинса не распознает конкретные задачи проекта.Это задачи для buildAll команды gradle.projectsEvaluated {

    task compileAll (dependsOn: [project(':loadRemote').remoteLoadCleanCompileStage]) {
         compileAll.finalizedBy project(':load').loadCleanCompileStage
    }

    task packageAll (dependsOn: [project(':loadRemote').remoteLoadPackage]) {
        packageAll.finalizedBy project(':load').loadPackage
    }

    task buildAll (dependsOn: [compileAll]) {
        buildAll.finalizedBy packageAll
    }
}

Ошибка в Jenkins заключается в том, что она не распознает задачу project(':loadRemote').remoteLoadCleanCompileStage

Как определить мультипроект в Дженкинс?Нужно ли мне добавлять файл settings.gradle?

ОБНОВЛЕНИЕ Я подумал, что разные файлы сборки не могут быть расположены в проекте, поэтому я добавил это в файл settings.gradle

rootProject.name = 'EquipLoad'

include 'load'
project(':load').projectDir = new File(settingsDir, rootProject.rootDir.getAbsolutePath() + "/Load")
project(':load').buildFileName = 'load_build.gradle'

include 'loadRemote' 
project(':loadRemote').projectDir = new File(settingsDir, rootProject.rootDir.getAbsolutePath() + "/LoadRemote")
project(':loadRemote').buildFileName = 'remoteLoad_build.gradle'

Ошибка по-прежнему та же, файл build.gradle (родительский) не распознает задачу зависимости project(':loadRemote').remoteLoadCleanCompileStage Глядя на операторы отладки, обнаруживаются и идентифицируются дочерние файлы gradle сборки: Оценка проекта ': loadRemote 'используя файл сборки' /var/.../loadRemote/remoteLoad_build.gradle '.Тот же текст показан для файла загрузки сборки.Однако задачи в этих файлах сборки gradle не распознаются в родительском файле build.gradle.

1 Ответ

0 голосов
/ 26 октября 2018

Проблема была простой ошибкой, чувствительной к регистру.Я назвал папки: Load и LoadRemote.Но идентифицировал их в скриптах gradle как: «load» и «: loadRemote».Изменив текст скрипта на «: Load» и «: LoadRemote», я решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...