Среди всех предложений о хамкресте я почти всегда заканчиваю с org.hamcrest.CoreMatchers
.Оба для isNull
и is
методов.
Причина, по которой вы видите похожую иерархию классов, заключается в том, что библиотека wiremock
затеняла совместимую версию hamcrest вместе с ними.Иногда вы создаете библиотеку, которая зависит от конкретной версии зависимостей, но пользователи могут иметь другую версию этой библиотеки, которая может быть несовместима с вашей.Хотя код может скомпилировать, во время выполнения могут произойти сбои.Это может случиться с наиболее широко используемыми библиотеками, такими как Guava (вasticsearch) и в вашем случае hamcrest (в wiremock).Решение этой проблемы состоит в том, чтобы скрыть версию ваших зависимостей вместе с другим именем пакета, чтобы они не вызывали конфликтов или проблем во время выполнения для пользователей.Компромисс в том, что ваш артефакт становится немного тяжелее, так как они также содержат ваши зависимости.