Necesito construir 2 proyectos usando Gradle. Tengo los 2 archivos gradle para cada proyecto y un archivo gradle principal. En settings.gradle defino los proyectos:

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

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

Cada uno de los subproyectos tiene sus propias tareas definidas de compilación y etapa. Necesito que el proyecto loadRemote se ejecute primero y luego el proyecto de carga. ¿Cómo creo esta dependencia? Intenté agregar la dependencia al archivo build.gradle de esta manera:

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

Pero el proyecto de carga se compila primero.

Encontré esta sintaxis:

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

Pero necesito reemplazar la tarea de Gradle compile con la que creé en el subproyecto. No estoy seguro de si está permitido.

¿Alguien tiene alguna idea de cómo definir las dependencias de tareas entre 2 subproyectos?

0
Gloria Santin 17 oct. 2018 a las 04:59

2 respuestas

La mejor respuesta

La respuesta anterior no funcionó para mí. Estoy seguro de que es exclusivo de mi proyecto. Tengo que crear 2 archivos ear usando 1 código base.

Lo que hice fue crear un archivo gradle principal, build.gradle, y agregar tareas allí que usaban ambos proyectos como este:

//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
Gloria Santin 23 oct. 2018 a las 12:29

Puede modificar su secuencia de comandos de esta manera:

project(':load') {
   war.dependsOn project(":loadRemote").tasks.compileJava
}
0
Opal 17 oct. 2018 a las 06:11