Я пытаюсь настроить свою сборку ant так, чтобы цели, на которых выполняются функции Ivy, были полностью отделены от целей, на которых выполняется непрерывная сборка, и на которых работает большинство разработчиков. Я хочу, чтобы одна цель загружала обновленные зависимости, которые я проверю. Другие цели будут устанавливать свой путь к классу, включая * .jar из соответствующего каталога.
У меня есть две конфигурации:
<configurations>
<conf name="compile" />
<conf name="test" />
</configurations>
У меня есть некоторые зависимости:
<dependency
org="my.org"
name="some-lib"
rev="latest.release"
conf="compile->default" />
<dependency
org="my.org"
name="some-test-lib"
rev="latest.release"
conf="test->default" />
И я загружаю эти зависимости и их транзитивные зависимости, используя ivy: retrieve:
<ivy:retrieve
pattern="lib/[conf]/[type]/[artifact]-[revision].[ext]"
sync="true"
file="ivy.xml" />
Проблема в том, что я вижу несколько дубликатов jar между компиляцией и тестовыми каталогами, которые происходят из транзитивных зависимостей. Поскольку я хочу проверить все эти банки и использовать их для создания путей к классам, я бы хотел избежать дубликатов. Это возможно?
Библиотека / компиляция / банка / некоторые Пбы-1.0.jar
Библиотека / компиляция / банка / SLF4J-апи-1.5.11.jar
Библиотека / тест / банка / некоторый тест Пб-1.0.jar
Библиотека / тест / банка / JUnit-4.7.jar
lib / test / jar / slf4j-api-1.5.11.jar