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:
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?
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.