2011-12-05 11 views
8

Sto creando un plug-in di eclissi e ho problemi con i vasi esterni. Nel mio plug-in avvio un'applicazione che richiede alcuni jar esterni. Cosa devo fare per esportarli automaticamente con il resto del plug-in?Vasi esterni nel plug-in di eclissi

Grazie in anticipo :)

risposta

13
  1. Aprire il plugin.xml
  2. Vai alla scheda Runtime e aggiungere il JAR nella sezione classpath
+2

ulteriori dettagli pls – eactor

+2

** Importante: ** La sola aggiunta della cartella contenente non è sufficiente. Inoltre, l'aggiunta di una dipendenza nell'impostazione del progetto del plugin (anziché MANIFEST/plugin.xml) non fa altro che "nascondere" gli errori in fase di compilazione. –

+0

questo aggiungerà solo jar dal progetto corrente. Non è possibile aggiungere giare esterne (che si trovano da qualche parte sul disco), ma non è portatile, ma quando ne hai bisogno ne hai bisogno. – ACV

8

Questo è un modo semplice, anche se non creare un plug-in aggiuntivo.

In Eclipse:

  • Scegli New>Other, quindi Plug-in Development>Plug-in from existing JAR archives.
  • Scegli i barattoli da includere.
  • Nella pagina successiva, configurare il plug-in.
  • Nel manifest del plug-in, aggiungere il nuovo plug-in come dipendenza.
  • Nelle proprietà del plug-in, aggiungere il nuovo progetto sotto Java Build Path nella scheda Projects.

Edit: Si può essere in grado di combinare le giare nel vostro plug-in, combinando invece entrambi suggerimenti di Zsolt e user714965 sotto.

+2

Se si combinano più vasi, è necessario assicurarsi che la licenza lo consenta. –

10

Seguendo la procedura qui di seguito, i JAR esterni saranno inclusi quando si esporta il plug-in:

  1. Copiare i file JAR esterni richiesti in una cartella nel progetto plug-in; Mi piace chiamare questa cartella lib, ma qualsiasi cosa funzioni per te.
  2. Aprire il build.properties nel progetto del plug-in e controllare i JAR che si desidera includere nella compilazione nella sezione binaria a sinistra.
+1

Sebbene sia possibile combinare i jar nello stesso bundle, non è il modo "corretto" per farlo in un ambiente OSGi: http://stackoverflow.com/questions/3013583/questo-è-il-standard-way- to-bundle-osgi-dependent-library/3015072 # 3015072 – Robin

+1

@Robin Assolutamente, quello che ho descritto sopra è stata la soluzione rapida e sporca per il problema in questione. –

4

Questo è ciò che ha funzionato per me. Se sono veramente esterni, e questo è un progetto per la tua azienda che non sarà nel "selvaggio" e tu controlli l'ambiente, e li hai fuori sul file system, dillo a/opt/java/lib/somedir /some.jar puoi dire al pacchetto dove trovarli aggiungendoli alla voce Bundle-ClassPath nel MANIFEST.MF sotto META-INF. La sintassi è: Bundle-ClassPath:., esterna: /opt/java/lib/somedir/some.jar, esterna: /opt/java/lib/someotherdir/someother.jar

Inoltre sarebbe usare prudentemente questi nel tuo percorso di build in modo da lavorare con gli stessi giare sia negli ambienti di costruzione che di runtime.

Ho fatto questo in cui i jar sono multiuso (come apache-commons) sui nostri file system e di nuovo controlliamo l'ambiente.

Riferimento il seguente: http://www.eclipsezone.com/eclipse/forums/t51870.html

+0

Grazie !!! Questa è la risposta reale e funziona !. Basta notare che '* .jar' non funzionerà. – ACV

1
  1. Copiare i file JAR esterni richiesti in una cartella nel progetto plug-in; Mi piace chiamare questa cartella lib, ma qualunque cosa funzioni per te.
  2. .. ma come appunto a Zsolt Török (la sua soluzione non ha funzionato per me) Ho fatto doppio clic sul plugin.xml, sono andato alla scheda di compilazione, in basso, ho fatto clic su Aggiungi JAR ... e hey presto, ha mostrato il mio progetto, quindi ho navigato in lib e incluso il jar esterno, come da passaggio 1.
0

L'approccio di Andy Thomas funziona principalmente, ma è necessario esportare anche i pacchetti necessari per l'esistente plugin nel nuovo plugin wrapper in modo che possano essere accessibili dal plugin in fase di runtime.

+0

questa risposta è più adatta per un commento. Benvenuto anche in SO :). –

Problemi correlati