Я обычно нахожусь в такой ситуации, когда я работаю над парой проектов, которые все зависят от одного и того же родительского партнера.Мы обрабатываем все наши версии и исключения зависимостей в разделе dependencyManagement родительского pom.Дочерние poms будут определять зависимости, которые им нужны, но они будут использовать версию от родителя.
Когда мы помещаем исключение в банку, это обычно происходит потому, что мы хотим получить другую версию этой банки отгде-то еще (обычно это другая банка, от которой мы зависим).
Однако я столкнулся с проблемой.Допустим, у вас есть два jar A и B в родительском объекте, которые зависят от разных версий jar C. Кто-то, работающий над дочерним проектом, может нуждаться в обоих jar A и B, а затем может перейти в родительский, исключая jar C из jar B.может работать хорошо для них.Однако кто-то еще, кто работает над другим дочерним проектом, может зависеть только от jar B, и теперь его проект может получить NoClassDefFoundError во время выполнения после того, как он получит последний родительский код из-за потери jar C. Теперь, возможно, третий человек, которыйПозже, работая над другим дочерним проектом, решает, что им нужна банка B (а не банка A), поэтому они добавляют банку B. Если они не уделяют пристального внимания, они могут не осознавать, что у них нет банки C, которая нужна банке.B. Во время выполнения они могут получить NoClassDefFoundError.
Как вы можете видеть, любой дочерний проект, который нуждается в jar A и jar B, подойдет, но любой дочерний проект, который нуждается только в jar B, должен помнить, чтобы добавить jar Cк их поме тоже.
Лучше ли делать исключения только в детском поме?Или я должен продолжать пытаться иметь исключения в родительском pom и убедиться, что просто внимательно посмотрел на исключения и добавил дополнительные зависимости к дочернему pom по мере необходимости?Спасибо!