Ich verwende Apache Ivy + IvyDE, um die Abhängigkeiten meines Projekts abzurufen, nämlich:
%Vor%Quellen sind die Maven und JBoss (Hibernate) Repositories.
Wie Sie sehen können, verwende ich Logback + SLF4J für die Protokollierung, aber aus irgendeinem Grund wird Ivy auch log4j und slf4j-log4j herunterladen, was ein paar kleine Probleme in meiner Anwendung verursacht.
Gibt es eine Möglichkeit zu sehen, warum dies passiert, um zu sehen, welche der obigen Abhängigkeiten von log4j abhängen? Kann ich einen Abhängigkeitsgraphen / -baum von Ivy / IvyDE erhalten?
Und gibt es dann einen Weg dies zu verhindern?
Wir haben ein Ameisen-Ziel, das so aussieht:
%Vor% Dann ist es nur ein Aufruf ant report
und Ivy generiert den Bericht als HTML im angegebenen Verzeichnis.
Sehen Sie sich die Ivy-Dokumentation für efeu an: Bericht .
Bearbeiten:
Um die Einbeziehung dieser Artefakte / Abhängigkeiten zu verhindern, könnten Sie transitive="false"
für das Element <dependency ..>
oder <exclude>
verwenden. Zum Beispiel verwenden wir Hibernate 3, möchten aber nicht JTA 1.1
, also enthält unser ivy.xml
Folgendes: <exclude module="jta"/>
, um alle transitiven JTA-Abhängigkeiten auszuschließen.
Ich möchte auf Thomas 'Antwort aufbauen und empfehlen, den Abhängigkeiten eine "conf" -Deklaration hinzuzufügen:
%Vor%Dadurch werden die transitiven Abhängigkeiten auf die Standarduntergruppe reduziert, die in der Maven-Terminologie die jars im Bereich "compile" ist.
Ohne diese Einstellung erhalten Sie alle Abhängigkeiten, die viele optionale Dinge enthalten, die Sie nicht benötigen.
Tags und Links java dependency-management log4j ivy