Подтвердить что ты не робот

Зачем нам нужны "Импортированные пакеты", когда у нас есть "Обязательные подключаемые модули" в зависимостях плагина eclipse?

При разработке приложения eclipse вкладка зависимостей в MANIFEST.MF имеет два столбца. Один из них - Required Plug-ins, а другой - Imported Packages.

Зачем нам Imported Packages, когда у нас есть Required Plug-ins?

Прокомментировано, что this plug-in depends without explicitly identifying their originating plug-in, но я не уверен, в каком случае вы не хотите явно идентифицировать свой исходный плагин и каково его преимущество?

enter image description here

ADDED

Связанный вопрос - В чем разница между пакетами Eclipse и подключаемыми модулями?

4b9b3361

Ответ 1

Импорт пакета обеспечивает дополнительный уровень косвенности, требующий пакета.

Рассмотрим случай с некоторым стандартным API... org.standard.framework. Предположим, что две компании реализуют этот API, возможно, у вас есть пакеты com.abc.framework и com.xyz.framework. Оба этих пакета реализации будут экспортировать пакет org.standard.framework.

Теперь предположим, что вам нужна реализация org.standard.framework, но вам не особо важно, какой из них. Если вам нужен пакет com.abc.framework или com.xyz.framework, вы привязываетесь к определенной реализации. С директивой import-package вы позволяете OSGi служить в качестве слоя косвенности.

Еще одно преимущество импортного пакета заключается в том, что вам не нужно изменять зависимости, если пакет переносится в другой пакет. Эта ситуация может возникнуть во время рефакторинга, когда пучки разбиты или объединены.

По этим причинам разработчики спецификаций OSGi теперь, как правило, рекомендуют использовать относительно новую директиву import-package over require-bundle. Проблема в том, что не все пакеты готовы для этого. Многие еще не указывают версию при экспорте пакета. Это делает импорт-пакет нецелесообразным во многих случаях.

Ответ 2

Задание зависимости от целого плагина, скорее, только требуемый пакет может создавать циклические зависимости, если у вас много плагинов. Лучше всего указать только те пакеты, которые вам действительно нужны. Для небольшого количества плагинов, если вы уверены, вы можете эффективно поддерживать зависимости, вы можете упростить свою жизнь, указав весь плагин. Надеюсь, это поможет.