2011-06-15 7 views
9

Tengo una compilación de proyecto con hormiga usando hiedra para la gestión de dependencias. No tengo ningún archivo ivysetting, sino una ivy.xml con la siguiente dependencia (Quiero usar un muelle con slf4j en lugar de los comunes de registro):¿Cómo se excluye la dependencia de registro común de primavera con hiedra?

<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> 

Pero cuando la resolución de la configuración de compilación, commons-logging se resuelve. También traté de usar la exclusión en una dependencia explícita spring-core, pero commons-logging siempre se coloca en el classpath de compilación.

¿Cuál es mi culpa? ¿No es eso lo que Not Using Commons Logging describe para maven? ¿Es un error de hiedra? ¿Necesito una configuración especial? ¿Tiene algo de hiedra en la memoria caché? ¿Alguna idea?

Uso hormiga 1.8.2 y ivy 2.2.0, el uso de IvyDE en Eclipse tiene el mismo problema.

Respuesta

22

Parece que el uso del <exclude /> se ha roto por algún motivo desconocido. He intentado algo similar en mi pc y los siguientes trabajé:
Trate the top-level exclude (que está directamente bajo <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> 

no sé por qué el otro no está trabajando Hay algunos errores en JIRA relativos excluir y dependencias circulares, pero eso no parece ajustarse a este caso. Tal vez sea un fallo real.

+0

No, ver commons-logging en el informe - y echar un vistazo en el [repo experto] (http://mvnrepository.com/artifact/commons-logging/commons-logging) (que está en el resolvedor predeterminado como ibiblio, no en el repositorio propio de ivy) –

+0

@Arne Burmeister He actualizado la respuesta. – oers

+0

Ups, realmente extrañaba esa función, ¡gracias! –

0
`<exclude name="commons-logging"/> 

poner por encima de lo más general Excluir podría funcionar mejor para usted.

0

uso del módulo en lugar del nombre

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

Cuestiones relacionadas