Sto cercando di capire la differenza tra il seguenteOSGI Bundle vs vaso dipendenza
<dependency>
<groupId>com.myspace.order</groupId>
<artifactId>dal</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
E
<dependency>
<groupId>com.myspace.order</groupId>
<artifactId>dal</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>bundle</type>
</dependency>
L'dal manufatto stesso ha specificato come imballaggio fascio come:
<packaging>bundle</packaging>
Ora quando distribuisco l'artefatto dal, lo vedo pubblicato nel repository come un barattolo (con un manifest all'interno di esso). In questo caso, quale dovrebbe essere la mia dipendenza dal. Dovrebbe essere di tipo bundle o jar? Se sto facendo OSGI, suppongo che il modo sarebbe quello di avere il tipo specificato come pacchetto. È corretto? Oppure posso semplicemente avere una dipendenza da jar qui?
", per esempio, esso non lamentarsi se si tenta di utilizzare i pacchetti non esportati dal fascio che stai a seconda .... " Ciò significa che le dipendenze OSGI vengono applicate (e rilevate) in fase di esecuzione? Stavo pensando che il pacchetto di esportazione sia stato verificato al momento della compilazione. – Sudoer
Le dipendenze verranno RISOLTE quando si installa il pacchetto nel contenitore OSGi. Poiché OSGi è un ambiente dinamico, è possibile installare un pacchetto in qualsiasi momento ... Se il pacchetto raggiunge lo stato RISOLTO, può essere avviato. In altre parole, l'installazione è una sorta di compilazione dinamica ... se il bundle lo supera, è garantito che al momento dell'installazione tutte le importazioni siano state soddisfatte, quindi il bundle può iniziare. – Renato
Non è possibile che OSGi possa risolvere le dipendenze del bundle prima di provare effettivamente a installarlo perché ciò dipenderà dal set di bundle disponibili al momento dell'installazione.Maven, d'altra parte, usa la normale procedura di compilazione Java, ignorando le regole di visibilità di OSGi ... questa è la differenza principale. – Renato