Proyectos Gradle en función de artefactos creados por proyectos hermanos

Tengo esta configuración de Gradle con cuatro proyectos, un padre con tres hijos, donde un 'backend' Java Servlet JSON está integrado en un archivo de guerra, y luego un 'frontend' HTML5 estático que consume esto está integrado en un zip. Ambos "instalan" sus dispositivos en el repositorio local.

El tercer proyecto de hermanos 'fusión' depende de estos dos artefactos, para construir una guerra "combinada" simplemente "comprimiéndolos juntos".

Sin embargo, una vez que tuve esto en funcionamiento tal como estaba previsto, obviamente tuve quepruebe el escenario de arranque eliminando los artefactos del repositorio local.

Ahora de repente me aparece "Artifact 'no.company:frontend:1.0-SNAPSHOT@zip' not found".

¿No es posible depender de artefactos quesera producido por la compilación actual?

Editar:

Basada en otra idea (y la respuesta de Peter que desalienta esta lógica de Maven), esta versión parece prometedora, no atravesando a Maven (nota: ¡funciona!):

// ## From frontend's build.gradle:
task zipFrontend(dependsOn: 'buildFrontend',  type: Zip) {
    from ('dist/')
}

// ## From backend's build.gradle:
apply plugin: 'war'

// ## From merger's build.gradle:
task mergeFrontAndBack(dependsOn: [':backend:war', 
                                   ':frontend:zipFrontend'], type: War) {
    from zipTree(project(':frontend').tasks['zipFrontend'].archivePath)
    from zipTree(project(':backend').tasks['war'].archivePath)
    destinationDir(buildDir)
}

Edición 2:

Basado en el comentario de Peter acerca de no alcanzar la estructura del proyecto de los hermanos y sus sugerencias concretas, aquí está la pieza resultante (nota: ¡funciona!):

// ## From frontend's build.gradle:
task zipFrontend(dependsOn: 'buildFrontend',  type: Zip) {
    from ('dist/')
}
configurations { zip }
artifacts { zip zipFrontend }

// ## From backend's build.gradle:
apply plugin: 'war'
configurations { jsonOnlyWar }
artifacts { jsonOnlyWar war }

// ## From merger's build.gradle:
configurations { merge }
dependencies {
    merge project(path: ':backend', configuration: 'jsonOnlyWar')
    merge project(path: ':frontend', configuration: 'zip')
}
task mergeFrontAndBack(dependsOn: configurations.merge, type: War) {
    from { configurations.merge.collect { zipTree(it) } }
    destinationDir(buildDir)
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta