2012-12-19 100 views
12

Podczas rozwijania aplikacji Eclipse zakładka zależności w MANIFEST.MF ma dwie kolumny. Jeden to Required Plug-ins, a drugi to Imported Packages.Dlaczego potrzebujemy `Zaimportowanych pakietów`, gdy mamy` Wymagane wtyczki` w zależnościach pluginów eclipse?

Dlaczego potrzebujemy Imported Packages, gdy mamy Required Plug-ins?

Komentarz jest taki, że this plug-in depends without explicitly identifying their originating plug-in, ale nie jestem pewien, w którym przypadku nie chce się jednoznacznie identyfikować pochodzącej wtyczki i jaka jest jej przewaga?

enter image description here

DODANO

pokrewne pytanie - What's the difference between Eclipse Packages and Plug-ins?

+0

Nie każdy importowany pakiet zawiera wtyczki. Najpierw użyj wymaganych wtyczek. W razie potrzeby użyj zaimportowanych pakietów. –

Odpowiedz

8

Zaimportowanie pakietu zapewnia dodatkowy poziom niezależności od wymaganego pakietu.

Rozważ przypadek standardowego interfejsu API ... org.standard.framework. Załóżmy, że dwie firmy implementują ten interfejs API, może masz pakiety com.abc.framework i com.xyz.framework. Oba te pakiety implementacyjne będą eksportować pakiet org.standard.framework.

Teraz załóżmy, że potrzebujesz implementacji org.standard.framework, ale nie obchodzi Cię, który. Jeśli potrzebujesz pakietu com.abc.framework lub com.xyz.framework, przywiązujesz się do konkretnej implementacji. Za pomocą dyrektywy import-package, pozwalasz OSGi służyć jako warstwa pośrednia.

Kolejną zaletą import-package jest to, że zależności nie muszą być zmieniane, jeśli pakiet zostanie przeniesiony do innego pakietu. Ta sytuacja może powstać podczas refaktoryzacji, gdy pakiety są rozbijane lub łączone.

Z tych powodów autorzy specyfikacji OSGi generalnie zalecają stosowanie względnie nowszej dyrektywy pakietu-importu w stosunku do wymaganego pakietu. Problem polega na tym, że nie wszystkie pakiety są na to gotowe. Wiele nie określa jeszcze wersji podczas eksportowania pakietu. To sprawia, że ​​import-package jest niepraktyczny w wielu przypadkach.

1

Określanie zależność od całej wtyczki, a raczej tylko wtedy wymagany pakiet może tworzyć cykliczny zależności, jeśli masz dużo wtyczek . Lepszą praktyką jest określanie tylko tych pakietów, których faktycznie potrzebujesz. Jeśli masz niewielką liczbę wtyczek, jeśli jesteś pewien, że jesteś w stanie efektywnie utrzymywać zależności, możesz uprościć swoje życie, określając całą wtyczkę. Mam nadzieję że to pomoże.