Я в процессе миграции приложения на Spring Boot 2.0.4.RELEASE (из 1.5.x) и столкнулся с проблемой управления зависимостями.
Я поместил свой код в ветку здесь , и он работает как положено. Сначала я немного пытался понять, почему я получаю версию gson 2.8.5 (больше информации здесь ), но в двух словах:
- сим-ядро 9.5.1 тянет гсон 2.5
- это переопределяется родительскими зависимостями Spring Boot, которые устанавливаются как 2.8.5
Я создаю свое приложение и получаю стартовый пакет Spring Boot для его повторного использования - я использую плагин Spring Boot maven для его сборки, сведения о конфигурации здесь
Теперь проблема в том, что я импортирую эту версию стартера в другой проект, как здесь: https://github.com/vincent-fuchs/my-custom-github-crawler/commit/8ab128d0ec824b3f0871c175c954a30fe950b88e
когда я собираю my-custom-github-crawler, используя стартер, он компилируется, но во время выполнения я получаю сообщение об ошибке из-за неверной библиотеки версий: я вижу версию gson, у меня 2.5, а не 2.8 .5
Если я запишу версию gson в моем файле pom.xml, то это сработает: https://github.com/societe-generale/github-crawler/blob/sprinBoot2upgrade/github-crawler-core/pom.xml#L20-L24
Но, несомненно, есть лучший способ добиться этого, нет? потому что помимо добавления комментария в pom.xml к моему будущему самому себе, говоря «форсировать эту зависимость и эту версию, чтобы она вставила в стартер, который мы создадим», я не уверен, что делать так что я получаю правильную версию gson, и она говорит само за себя
Спасибо!