Я использую gradle 6.7 и создаю проект библиотеки, который компилируется в банку, которая помещается в мой собственный репозиторий артефактов s3.
В моем проекте есть зависимости от других артефактов, и я использую зависимость implementation.
Создается jar (не толстый jar) и загружается в репозиторий s3.
Когда в другом проекте я использую свою библиотеку, извлекая ее как зависимость от реализации, я получаю ошибки NoClassDef для других зависимостей, которые я использовал в своей библиотеке, что означает, что не найдена среда выполнения для зависимостей, которые я использовал в моя библиотека.
Мой вопрос в том, стоит ли создавать толстую банку? Я не думаю, что другие библиотеки (например, springboot и другие) используют толстые банки, верно? однако, когда я использую их как зависимость, во время выполнения обнаруживаются другие зависимости.
Означает ли это, что использование реализации в моем проекте для других зависимостей — неправильный путь? мне использовать что-то другое? Не могли бы вы рассказать немного больше о том, как правильно?
Спасибо