/ / Wie kann man die Commons-Protokollierungsabhängigkeit von Frühling mit Efeu ausschließen? - Abhängigkeiten, slf4j, Efeu, Apache-Commons-Logging

Wie kann Commons die Abhängigkeit von Frühling mit Efeu ausschließen? - Abhängigkeiten, Slf4j, Efeu, Apache-Commons-Protokollierung

Ich habe ein Projekt mit Ant erstellt, das Efeu für das Abhängigkeitsmanagement verwendet. Ich habe keine ivysetting Datei, aber eine ivy.xml mit der folgenden Abhängigkeit (ich möchte spring mit slf4j anstelle der Commons-Protokollierung verwenden):

<configurations>
<conf name="compile" />
<conf name="runtime" extends="compile"/>
</configurations>
<dependencies>
<dependency org="org.springframework" name="spring-webmvc" rev="3.0.5.RELEASE" conf="compile->default">
<exclude org="commons-logging" name="commons-logging"/>
</dependency>
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" conf="compile->default" />
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" conf="runtime->default" />
</dependencies>

Aber wenn Sie die Kompilierkonfiguration auflösen, commons-logging ist gelöst. Ich habe auch versucht, den Ausschluss explizit zu verwenden spring-core Abhängigkeit aber commons-logging wird immer in den Kompilierklassenpfad eingefügt.

Was ist meine Schuld? Ist es nicht das was Commons-Protokollierung nicht verwenden beschreibt für Maven? Ist es ein Efeu-Bug? Benötige ich eine spezielle Einstellung? Hat Efeu etwas zwischengespeichert? Irgendeine Idee?

Ich verwende Ant 1.8.2 und Ivy 2.2.0. Die Verwendung von IvyDE in Eclipse hat das gleiche Problem.

Antworten:

23 für die Antwort № 1

Ihre Verwendung des <exclude /> scheint aus unbekannten Gründen gebrochen zu sein. Ich habe etwas Ähnliches auf meinem PC ausprobiert und folgendes funktioniert:
Versuchen die oberste Ebene ausschließen (was direkt unter <dependencies />:

    <dependencies>
<dependency org="org.springframework" name="spring-webmvc" rev="3.0.5.RELEASE" conf="compile->default">
</dependency>
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.1" conf="compile->default" />
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.6.1" conf="runtime->default" />
<exclude org="commons-logging"/>
</dependencies>

Ich weiß nicht, warum der andere nicht funktioniert. Es gibt einige Fehler in JIRA bezüglich Ausschluss- und Zirkularabhängigkeiten, aber das scheint in diesen Fall nicht zu passen. Vielleicht ist es ein echter Fehler.


0 für die Antwort № 2

Verwenden Sie das Modul anstelle des Namens

<exclude org="commons-logging" module="commons-logging"/>


0 für die Antwort № 3
<exclude name="commons-logging"/>

Wenn der allgemeine Ausschluss oben angegeben ist, funktioniert er möglicherweise besser.