Finden Sie versteckte Abhängigkeiten in Ivy

8

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?

    
Bart van Heukelom 23.03.2011, 12:35
quelle

2 Antworten

19

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.

    
Thomas 23.03.2011, 12:42
quelle
4

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.

    
Mark O'Connor 23.03.2011 18:32
quelle