Управление дубликатами файлов JAR с помощью муравья и плюща - PullRequest
2 голосов
/ 13 февраля 2011

HI,

Я использую сценарий ant build для создания моего java-приложения и использую Ivy для управления его зависимостями.

Поскольку мое приложение зависит / подмножество других приложений (Main App)при его запуске я установил classpath так, чтобы он указывал на lib jars основного приложения.

Поскольку я пытался собрать комплект, используя ant и ivy, он включает / извлекает все необходимые jar-файлы, как указано вivy.xml

Проблема в том, что некоторые файлы jar дублируются с файлом jars в основных папках приложения.

Есть ли способ задать classpath в build.xml для игнорированияполучение jar-файлов, которые уже существуют в папке lib основного приложения.

Спасибо

1 Ответ

0 голосов
/ 13 февраля 2011

Существует способ исключить элементы файла явно в теге, но вам придется вручную вызывать их:

<fileset dir="yourdir">
     <exclude name="apps/**/*Test*"/>
</fileset>

Хотя вы можете рассмотреть другой подход.Похоже, вы смешиваете методы управления зависимостями.Вот почему у вас конфликт ... Вы вручную устанавливаете зависимости в lib MainApp и указываете другие зависимости в Ivy.Я призываю вас подумать о том, чтобы выбрать один из них и выполнить все свои функции управления зависимостями.

Вы можете публиковать артефакты MainApp через Ivy и использовать этот артефакт в своем подпроекте.Ivy будет управлять дубликатами за вас.

В качестве альтернативы, вы можете полностью удалить MainApp из вашего classpath и заново захватывать зависимости каждый раз (Ivy кэширует эти зависимости локально, поэтому вам не придется их повторно скачивать, он просто управляет ими на диске для вас).

...