2016-12-14 1 views
0

Sagen wir, wir haben die folgende Projektstruktur.Gradle: Projekt einschließen, ohne die Details seiner Teilprojekte zu kennen

A depends on B 
B depends on C 

I Projekt A wollen, so dass sie nichts über Projekt C nicht wissen Sie sollte nur über seine direkte Abhängigkeit Projekt B. Projekt B wissen sollten alle Daten enthalten, wie es hängt von Projekt C.

Die Besonderheiten aller Projekte müssen in ihren eigenen Gradle-Dateien enthalten sein.

Um konkreter zu lassen Sie uns sagen, es sollte

task build in A must depend on task build from B 
task build in B must depend on task build from C 

Wie die folgende Aufgabe Abhängigkeit sein kann ich das tun?

Antwort

0
project(':a') { 
    apply plugin: 'java' 
    evaluationDependsOn(':b') // possibly not required but worth a mention 
    dependencies { 
     // add the 'foo' configuration to the 'compile' dependencies 
     compile project(path: ':b', configuration: 'foo') 
    } 
} 

project(':b') { 
    configurations { 
     foo 
    } 
    task makeCustomJar(type: Jar) { 
     // configure the jar task 
    } 
    artifacts { 
     // the custom jar is added to the 'foo' configuration 
     foo makeCustomJar 
    } 
} 
+0

Ich habe nicht explizit, dass Projekte in ihren eigenen Gradle-Dateien sein sollten. Ich habe die Frage aktualisiert. – Sogartar

+0

Könnte ich "anwenden von" dafür verwenden? – Sogartar

+0

Es spielt keine Rolle. Wenn Sie eine separate Datei pro Projekt erstellen, extrahieren Sie einfach den Hauptteil der 'project (...) {...}' Blöcke. Könnte ich dafür "anwenden von" verwenden - NEIN –

Verwandte Themen