Как исключить зависимость регистрации общего достояния весны с плющом? - PullRequest
10 голосов
/ 16 июня 2011

У меня есть сборка проекта с использованием ant для управления зависимостями.У меня нет файла ivysetting, но ivy.xml со следующей зависимостью (я хочу использовать spring с slf4j вместо регистрации общего ресурса):

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

Но при разрешении конфигурации компиляции commons-logging разрешается,Я также пытался использовать исключение для явной зависимости spring-core, но commons-logging всегда помещается в путь к классам компиляции.

В чем моя ошибка?Разве это не то, что Not Using Commons Logging описывает для maven?Это ошибка плюща?Нужна ли мне особая настройка?Айви что-то кешировал?Есть идеи?

Я использую ant 1.8.2 и ivy 2.2.0. Использование IvyDE в Eclipse имеет ту же проблему.

Ответы [ 3 ]

24 голосов
/ 16 июня 2011

Ваше использование <exclude />, кажется, не работает по неизвестным причинам.Я попробовал что-то похожее на моем компьютере, и сработало следующее:
Попробуйте исключить верхний уровень (который находится непосредственно под <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>

Я не знаюпочему другой не работает. В JIRA есть некоторые ошибки, касающиеся исключений и циклических зависимостей, но это не соответствует этому случаю. Может быть, это настоящая ошибка.

0 голосов
/ 19 августа 2017

Использовать модуль вместо имени

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

0 голосов
/ 20 июня 2013
<exclude name="commons-logging"/>

, приведенный выше как общее исключение, может работать лучше для вас.

...