2016-07-09 16 views
1

Also ich habe einen lokalen Glas als Abhängigkeit mit folgendem Befehl in gradle enthalten -
„kompilieren Dateien (“ $ {} PathToJar /name.jar ")
Jetzt will ich ausschließen einige Modul von oben Glas wie tun wir mit normalen Abhängigkeiten Ausschluss
Modulabhängigkeiten von JAR-Datei in gradle

compile('com.a.b:' + version) { 
     exclude group: 'com.google.inject', module: 'guice_servlet' 
     exclude group: 'com.google.inject', module: 'guice' 
     exclude group: 'io.dropwizard' 
     exclude group: 'org.slf4j' 
     exclude group: 'log4j' 
    } 

ich viel gegoogelt, konnte aber einen richtigen Befehl nicht gefunden.

+0

Ich folge nicht. Sie möchten "Modul" von einer lokalen JAR ausschließen. Wie würde Gradle transitive Abhängigkeiten einer lokalen JAR berücksichtigen? – Crazyjavahacking

+0

Ich habe ein Uber-Glas aus meinem anderen Projekt erstellt und als Bibliothek in mein aktuelles Projekt aufgenommen. Nun möchte ich einige der Module von diesem Uber-Jar ausschließen. Und soweit ich weiß, enthält Uber Jar alle transitiven Abhängigkeiten, nicht wahr? –

Antwort

2

Was Sie versuchen, nicht direkt in Gradle möglich zu erreichen ist.

ModuleDependency.exclude(Map) wird verwendet, um transitive Abhängigkeiten auszuschließen. Das bedeutet, wenn die Abhängigkeit von einer anderen Abhängigkeit (JAR) abhängt, erstellt Gradle effektiv eine Abhängigkeitsbaumstruktur. Mit der Methode exclude() können Sie Abhängigkeiten aus der Baumstruktur entfernen.

Wenn Sie jedoch ein UberJar haben, werden Abhängigkeiten (Klassen) in der JAR selbst gebündelt. So können Sie nicht exclude() für den Ausschluss von Klassen aus einer JAR selbst verwenden, kann es nur zum Ausschließen von JARs aus dem Baum verwendet werden.