Transitive Dateiabhängigkeiten in Gradle

8

Ich möchte kontrollieren, welche meiner Abhängigkeiten in einem Java-Build für mehrere Projekte transitiv sind. Meine aktuelle Lösung besteht darin, im Stammprojekt eine "Export" -Konfiguration einzurichten:

%Vor%

Projekt A hat mehrere Dateiabhängigkeiten:

%Vor%

Projekt B hat eine Abhängigkeit von Projekt A, aber nur C.jar sollte für die Kompilierung auf dem Klassenpfad stehen, also add:

%Vor%

Dies erzeugt die gewünschten Ergebnisse, A.jar und B.jar sind nicht im Klassenpfad, aber C.jar ist im Klassenpfad für die Kompilierung.

Ich bin mir nicht sicher, ob das eine "grandle" Art ist, Dinge zu tun. Um Transitivität zu konfigurieren, würde ich lieber ein Attribut oder eine Konfigurationsschließung für die Abhängigkeitseinträge in Projekt A angeben, anstatt eine andere "Export" -Konfiguration zu verwenden.

Ist dies für Dateiabhängigkeiten möglich, oder gibt es eine andere Möglichkeit, dies zu erreichen?

    
Ingo Kegel 28.11.2011, 11:12
quelle

1 Antwort

2

Wenn ich Ihr Szenario richtig verstehe, dann ist es einfach, dies zu tun. Fügen Sie am Ende der Dependency-Deklaration eine Option closure hinzu, um transitive Abhängigkeiten zu vermeiden (Ich habe A, B, C .jar zu X, Y, Z geändert, weil ich vermute, dass sie nicht mit den Projekten A und B übereinstimmen) :

%Vor%

Dies würde verhindern, dass X.jar und Y.jar dem Klassenpfad für Projekt B hinzugefügt werden.

Alternativ, und ich weiß nicht, wie gut das für Sie funktionieren würde und es nicht wirklich empfehlen würde (Sie wollen nur, dass Sie die Möglichkeiten kennen), könnten Sie das in b.gradle:

von Projekt B tun %Vor%

Ich hoffe, das hilft.

    
Eric Wendelin 01.12.2011 21:18
quelle

Tags und Links