2012-12-19 9 views
12

Nello sviluppo dell'applicazione Eclipse, la scheda delle dipendenze in MANIFEST.MF ha due colonne. Uno è Required Plug-ins e l'altro è Imported Packages.Perché abbiamo bisogno di `Pacchetti importati` quando abbiamo` Richiesto plug-in` nelle dipendenze del plugin di eclissi?

Perché abbiamo bisogno di Imported Packages quando abbiamo Required Plug-ins?

Il commento ha che this plug-in depends without explicitly identifying their originating plug-in, ma non sono sicuro in quale caso non si vuole identificare in modo esplicito il loro plug-in di origine, e qual è il vantaggio di esso?

enter image description here

AGGIUNTO

questione connessa - What's the difference between Eclipse Packages and Plug-ins?

+0

Non tutti i pacchetti importati contengono plug-in. Utilizza prima i plug-in richiesti. Usa i pacchetti importati quando necessario. –

risposta

8

L'importazione di un pacchetto fornisce un ulteriore livello di riferimento indiretto rispetto alla richiesta di un pacchetto.

Considerare il caso di alcune API standard ... org.standard.framework. Supponiamo che due aziende implementino questa API, forse hai bundle com.abc.framework e com.xyz.framework. Entrambi questi pacchetti di implementazione esporterebbero il pacchetto org.standard.framework.

Supponiamo ora che sia necessaria un'implementazione org.standard.framework, ma non si cura particolarmente quale. Se hai bisogno di com.abc.framework o com.xyz.framework bundle, ti stai legando a una particolare implementazione. Con una direttiva import-package, stai permettendo a OSGi di servire come un livello di riferimento indiretto.

Un altro vantaggio del pacchetto di importazione è che le dipendenze non devono essere modificate se un pacchetto viene spostato in un altro pacchetto. Questa situazione può sorgere durante il refactoring quando i bundle sono suddivisi o combinati.

Per questi motivi, gli scrittori di specifiche OSGi ora generalmente consigliano di utilizzare la direttiva relativamente più recente del pacchetto di importazione su require-bundle. Il problema è che non tutti i pacchetti sono pronti per questo. Molti non specificano ancora una versione durante l'esportazione di un pacchetto. Ciò rende poco pratico il pacchetto di importazione in molti casi.

1

Specificare la dipendenza su un intero plug-in, invece, allora solo un pacchetto di richiesta può creare un dipendenze cicliche, se avete un sacco di plugin . È preferibile specificare solo i pacchetti effettivamente necessari. Per la piccola quantità di plug-in di cui sei sicuro, sei in grado di mantenere le dipendenze in modo efficiente, sei lieto di semplificarti la vita specificando l'intero plug-in. Spero che questo ti aiuti.

Problemi correlati