Невозможно определить зависимости задачи между несколькими проектами, используя gradle - PullRequest
0 голосов
/ 17 октября 2018

Мне нужно построить 2 проекта, используя Gradle.У меня есть 2 файла Gradle для каждого проекта и родительский файл Gradle.В файле settings.gradle я определяю проекты:

include 'loadRemote'
include 'load'
rootProject.name = 'EquipLoad'

project(':loadRemote').buildFileName = 'buildRemote.gradle'
project(':load').buildFileName = 'buildLoad.gradle'

Каждый из подпроектов имеет свои собственные определенные задачи компиляции и этапа.Мне нужно запустить проект loadRemote, а затем проект загрузки.Как мне создать эту зависимость?Я попытался добавить зависимость в файл build.gradle следующим образом:

tasks.getByPath(":load:cleanCompileStage").dependsOn(":loadRemote:cleanCompileStage")

Но сначала загружается проект загрузки.

Я нашел следующий синтаксис:

project(':load') {
    dependencies {
       compile project (':remoteLoad')
    }
}

Но нужно заменить задачу Gradle compile той, которую я создал в подпроекте.Я не уверен, разрешено ли это.

У кого-нибудь есть идеи, как определить зависимости задач между двумя подпроектами?

Ответы [ 2 ]

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

Ответ выше не работал для меня.Я уверен, что это уникально для моего проекта.Я должен создать 2 файла ear с использованием 1 базы кода.

Я создал родительский файл gradle build.gradle и добавил туда задачи, в которых использовались оба проекта, например:

//This task builds load and loadRemote ear using 1 command, 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
    }
}
0 голосов
/ 17 октября 2018

Вы можете изменить свой скрипт следующим образом:

project(':load') {
   war.dependsOn project(":loadRemote").tasks.compileJava
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...