Цель maven dependency:tree
- это способ определить, где у вас могут быть конфликтующие зависимости, но установление совместимости - более сложный вопрос, который не может быть решен maven самостоятельно.
Установление совместимости версий иногда довольно сложно. Основная причина в том, что не существует принудительных правил о том, что диктуется, когда в библиотеке происходят критические изменения.
Популярным способом передачи совместимости является использование предсказуемой стратегии управления версиями. Семантическое управление версиями - одна из таких популярных стратегий, которая требует:
Учитывая номер версии MAJOR.MINOR.PATCH, увеличить:
ОСНОВНАЯ версия при несовместимых изменениях API,
ОСНОВНАЯ версия, когда вы добавляете функциональность обратно-совместимым способом, и
Версия PATCH, когда вы делаете обратно совместимые исправления ошибок.
Как говорится, cassandra-all
не претендует на то, чтобы следовать этому. Кассандра - это база данных, а не столько библиотека. Известно, что между второстепенными версиями нарушаются изменения API, и я уверен, что это происходило между версиями патчей.
Если вы используете janusgraph, я бы предложил привязать себя к версии Кассандры, от которой она утверждает, что зависит.
Однако, если вы запускаете janusgraph с cassandra, используя Режим удаленного сервера , я ожидаю, что вы можете обновить кластер Cassandra до 3.11.4, и все должно продолжаться.
Вполне вероятно, что только при использовании Embedded Mode используется cassandra-all
.