У меня есть мультипроектная сборка 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.