Покрытие мавен ...
Поскольку вы объявляете, что ваш проект зависит от надувного замка в вашем maven pom, любой, кто использует maven для зависимости от вашей библиотеки, по умолчанию использует надувной замок как транзитивную зависимость .
Вы должны установить соответствующую область действия в зависимости, например. скомпилируйте для вещей, необходимых во время компиляции и во время выполнения, протестируйте на зависимости, необходимые только для тестирования и предоставленные для вещей, которые вы ожидаете предоставить в среде.
Вопрос о том, упакованы ли зависимости вашей библиотеки в зависимые проекты при их создании, зависит от того, как настроены эти проекты, и настройка областей будет влиять на поведение по умолчанию.
Например, упаковка типа jar по умолчанию не включает зависимости, тогда как war будет включать в себя те, которые находятся в области компиляции (но не тестируются или не предоставляются). Цель проекта заключалась в том, чтобы упаковочные плагины работали наиболее часто, без необходимости в конфигурации, но, конечно, упаковочные плагины в Maven могут быть настроены на другое поведение при необходимости. Сами плагины, которые делают упаковку, хорошо документированы на сайте apache maven.
Если пользователи вашей библиотеки вряд ли будут использовать maven для создания своих проектов, можно использовать плагин shade, который позволит вам создать «uber-jar», который содержит все зависимости, которые вы хотите. Вы можете настроить отдельные включения или исключения.
Это может быть проблематичным способом доставки, например, когда ваша библиотека содержит зависимости, версия которых конфликтует с прямыми зависимостями проектов, использующих ее, то есть они используют другую версию той же библиотеки, что и ваша.
Однако, если вы можете, лучше оставить это для управления maven, чтобы проекты, использующие вашу библиотеку, могли решать, хотят ли они ваших зависимостей, или указывать конкретные версии, предоставляя им большую гибкость. Это идиоматический подход.
Для получения дополнительной информации о зависимостях и областях применения в maven см. Справочное руководство , опубликованное Sonatype.