Две зависимости, содержащие одинаковые классы

У меня есть проект Maven, который использует библиотеку libosm-2.5.2-RC1. Эта библиотека содержит библиотеку осмоса. Библиотека osmosis уже загружена в jar-файл библиотеки libosm при загрузке libosm. Проблема в том, что эта библиотека осмоса старая и не может работать с текущими данными OSM. В Maven я могу добавить новую версию осмоса в качестве зависимости, и если я помещу ее в файл POM раньше, чем библиотека libosm, то будут использованы более новые классы из нового осмоса. Однако, когда я собираю проект, обе библиотеки включаются в папку lib. И после развертывания сервер Tomcat использует старый осмос, упакованный в libosm.

Чего я хочу достичь, так это использовать библиотеку libosm, но если есть классы, которые есть и в libosm, и в новой библиотеке осмоса, то я хочу использовать классы из новой библиотеки осмоса.

Одно из решений, которое работает, - это вручную распаковать jar-файл libosm и переписать старые классы осмоса на новые. Но я хотел бы добиться того же с maven, потому что я хочу поделиться проектом, и другим людям неудобно вручную добавлять обновленный файл jar libosm, который я создал.

1 ответ

Если вам не нужны классы из libosm-2.5.2-RC1 и если вы знаете пакеты / классы, которые вам не нужны, как часть этого jar, вы можете удалить их в фазе пакетов maven-jar-plugin, Эта ссылка показывает, как это сделать. Позвольте мне знать, если это помогает. http://maven.40175.n5.nabble.com/Excluding-packages-and-classes-from-jar-td106688.html

Другие вопросы по тегам