Добавление зависимости плагина к моему плагину разрушает существующую библиотеку, не являющуюся плагином (Google Data API)

Я пишу плагин Eclipse. Этот плагин использует несколько локальных jar-файлов и дополнительно имеет несколько зависимостей от других плагинов.

Я использую Google Code Search API из файлов JAR, и он отлично работает; но после того, как я добавлю зависимость от плагина org.eclipse.zest.dot.ui в моем проекте API поиска кода Google больше не работает - при вызове new CodeSearchService("my_ID")Я получаю следующую ошибку во время выполнения:

Анализ не выполнен: исключение java.lang.NoSuchMethodError.

com.google.common.collect.ImmutableSet.buider () Lcom / Google/ общие / собирать /ImmutableSet$ ​​Builder;

Я тщательно проверил и воспроизвел это: если плагин появляется в списке зависимостей, CodeSearchService больше не может быть использован; если это не так, это работает отлично. Фактический код проекта не изменяется, добавляется только зависимость.

Это очень странно для меня, так как я не понимаю, как добавление зависимости от плагина может внезапно привести к исчезновению некоторых методов. Кто-нибудь сталкивался с чем-либо подобным и может поделиться какой-либо информацией об этой проблеме и возможном решении? Я даже не уверен, является ли эта проблема специфической для этих двух библиотек или нет.

1 ответ

org.eclipse.zest.dot.ui пакет связывает зависимости, которые зависят от коллекций Google, поэтому я предполагаю, что для API поиска кода Google требуется другая их версия, и теперь она пытается использовать другую версию. Не знаю, как решить эту проблему, но вы можете попробовать обновить обе версии до последней (см. http://wiki.eclipse.org/Zest для получения самой новой версии). org.eclipse.zest.dot.ui расслоение).

Другие вопросы по тегам