Избегание дублирования библиотек .jar при экспорте одного .jar в Eclipse - PullRequest
4 голосов
/ 30 июня 2010

Я использую функцию Eclipse «Export ... Runnable jar file» для упаковки приложения Clojure + Java для развертывания.

Это прекрасно работает, магически, включая различные ресурсы, исходные файлы Clojure и т. Д.

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

Эта проблема излишне утраивает размер моего файла .jar!

Есть ли способ легко удалить эти дубликаты, кроме удаления вручную из сгенерированной банки?

1 Ответ

2 голосов
/ 30 июня 2010

Если в ваших проектах есть естественный граф зависимостей, я бы изменил настройки вашего проекта eclipse таким образом, чтобы только один проект имел jar на пути сборки, и он экспортировал (под экспортом я имею в виду " Вкладка «Порядок и экспорт» в диалоговом окне «Настроить путь сборки»), которую видят другие проекты. Другие проекты затем имеют этот «основной» проект на пути сборки. Я считаю, что это, естественно, должно решить вашу проблему.

Редактировать

Один комментарий, который у меня есть, заключается в том, что наличие банки внутри банки редко является хорошей идеей. Я бы либо пересмотрел упаковку всего этого в один jar-файл (если основной файл jar не состоит в том, чтобы извлечь его собственное содержимое в папку), либо, возможно, изучил бы возможность использования опции «Извлечь необходимые библиотеки в сгенерированный JAR-файл».

...