Maven имеет систему управления версиями, которая выбирает самую высокую версию библиотеки, если на нее ссылаются несколько версий. Например, если pom A относится к версии 1.1, а pom B к 1.2, тогда pom C (относящийся как к A, так и к B) будет использовать самую высокую версию; 1.2.
Этот подход предполагает, что 1.2 на 100% обратно совместим с 1.1, и это хороший и требуемый подход. Однако в определенные моменты жизненного цикла библиотек целесообразно навести порядок в магазине. Для меня любые серьезные изменения в API означают увеличение основной версии, поэтому версия 2.0 не обязательно должна быть обратно совместимой на 100% с последней версией 1.x. Хорошо.
Однако Maven на самом деле все равно, и если pom B будет обновлен с 1.2 до 2.0, Maven будет использовать 2.0, но pom A не сможет работать с этой версией.
Как сообщить Maven, что версия больше не обратно совместима?
Я пытался указать исключение диапазонов, поэтому A относится [1.1,1.999), а B ссылается [2.0,2.999). Тем не менее, Maven все еще решает максимальный номер версии (2.0).