2014-10-09 3 views
0

Я разрабатываю плагин Eclipse на платформе Eclipse Kepler, в котором я разрабатываю плагин. Я добавляю файл: bundle org.eclipse.jface.databinding 1.6.200 как одну из зависимостей. Когда я попытался установить плагин в Eclipse Juno на другой машине, он не удался. И сообщение об ошибке: ...bundle org.eclipse.jface.databinding 1.6.200' but it could not be found.Развертывание плагинов Eclipse: не удалось найти файл пакета

Может ли кто-нибудь сказать мне, как решить проблему?

ответ

1

При разработке плагинов Eclipse вы должны тщательно подумать о своих зависимостях. OSGi (на котором построен Eclipse) имеет возможность, в отличие от обычных JAR-зависимостей Java), чтобы указать версии и/или диапазоны версий для зависимостей. Поэтому вам нужно всегда думать о том, какой диапазон версий вы хотите поддерживать при разработке плагинов.

В вашем случае версия 1.6.200 от org.eclipse.jface.databinding - это то, что находится в последних версиях Eclipse (Luna и Kepler), но Juno имеет более старую версию (1.6.0). Поэтому, если вы хотите, чтобы ваш плагин был совместим с Juno, вам нужно указать диапазон версий в зависимости от org.eclipse.jface.databinding. Посмотрите, сколько плагинов Eclipse объявляют свои собственные варианты для примеров.

Вы действительно должны больше узнать об этом, чтобы обучать себя (это не тривиальные вещи, как обычные Java-проекты, просто добавляющие JAR без информации о версии). Вот некоторые полезные ссылки:

  • https://wiki.eclipse.org/index.php/Version_Numbering
  • Плагин развития действительно должно быть сделано с помощью целевой платформы. См. here.
  • This question and answer также имеет некоторые интересные моменты, в частности, о различии между импортом пакетов и в зависимости от комплектов.

Об этом можно многое узнать; неразумно придерживаться наивного подхода, но, к сожалению, большинство учебников затушевывают или полностью игнорируют эти аспекты управления зависимостями.

+0

Привет, E-Riz, спасибо за ваши длинные комментарии. Они очень полезны, я постараюсь разобраться в проблеме и научиться этому. – chygo

Смежные вопросы