Finden Sie versteckte Abhängigkeiten in Ivy
Ich bin mit Apache Ivy + IvyDE für immer mein Projekt, die Abhängigkeiten, die da sind:
<dependency org="com.google.guava" name="guava" rev="r08" />
<!-- logging -->
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" />
<dependency org="ch.qos.logback" name="logback-classic" rev="0.9.27" />
<!-- database -->
<dependency org="org.hibernate" name="hibernate-entitymanager" rev="3.6.2.Final" />
<dependency org="org.hibernate" name="hibernate-validator" rev="4.1.0.Final" />
<dependency org="org.hibernate" name="hibernate-c3p0" rev="3.6.2.Final" />
<dependency org="mysql" name="mysql-connector-java" rev="5.1.14" />
Quellen sind der Maven und JBoss (Hibernate) repositories.
Wie Sie sehen können ich bin mit logback+SLF4J für das logging, aber für einige Grund Ivy herunterladen log4j und slf4j-log4j als auch, was verursacht ein paar kleine problem in meiner Anwendung.
Gibt es eine Möglichkeit zu sehen, warum dies geschieht, um zu sehen, welche Abhängigkeiten oben hängen log4j? Bekomme ich eine dependency graph/Baum, generiert aus Efeu/IvyDE?
Und gibt es dann eine Möglichkeit dies zu verhindern?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben wir das ant-target sieht das so aus:
Dann ist es nur ein call -
ant report
Efeu und generiert den Bericht als HTML in das angegebene Verzeichnis.Werfen Sie einen Blick auf die Ivy-Dokumentation für ivy:Bericht.
Edit:
Um zu verhindern, dass die Aufnahme dieser Artefakte/Abhängigkeiten, könnten Sie versuchen
transitive="false"
auf die<dependency ..>
element, oder verwenden Sie<exclude>
. Zum Beispiel verwenden wir Hibernate 3, wollen aber nicht zu habenJTA 1.1
, so dass unsereivy.xml
containts das:<exclude module="jta"/>
ganz ausschließen transitiv JTA Abhängigkeiten.ivy.resolve.types
?jar,ejb,tld,bundle
. Ich werde die Anpassung der Antwort.Möchte ich bauen auf Thomas' Antwort und empfehlen das hinzufügen einer "conf" Erklärung zu den Abhängigkeiten:
Dadurch verringert sich die transitiven Abhängigkeiten zu den Standard-sub-set, das in Maven-Terminologie ist die Gläser auf den "compile" - scope.
Ohne diese Einstellung bekommst du alle Abhängigkeiten, die enthält viele optionale Sachen, die Sie nicht brauchen.