Ошибка означает, что байт-код для CacheBuilder
ожидает, что Ticker
будет Java-классом, но вместо этого это был интерфейс.
У вас есть две версии Guava на пути к классам ИЛИ вы запускаете приложение с другой версией Guava, отличной от той, которую вы использовали для сборки.
Попробуйте mvn dependency:tree
и найдите дубликаты. Если это выглядит хорошо, проверьте путь к классу при запуске приложения на вашей виртуальной машине.
В редких случаях кто-то мог быть "умным" и копировать байт-код для com.google.common.base.Ticker
(или CacheBuilder
) в свой JAR-файл. Попробуйте текстовый поиск по всем JAR-файлам, чтобы найти кандидатов, или напишите модульный тест, который выводит результат
getClass().getClassLoader().getResources("com/google/common/base/Ticker.class");
чтобы узнать, кто любит вносить свой вклад (должен возвращать только один URL). Если это работает, сделайте то же самое для CacheBuilder
.