2011-12-05 11 views
8

Estoy creando un complemento eclipse y estoy teniendo problemas con los archivos jar externos. En mi complemento, inicio una aplicación que requiere algunos archivos jar externos. ¿Qué debo hacer para exportarlos automáticamente con el resto del complemento?Frascos externos en el complemento Eclipse

Gracias de antemano :)

Respuesta

13
  1. Abra su plugin.xml
  2. Runtime Ir a la ficha y añadir su JAR en la sección de ruta de clase
+2

más detalles pls – eactor

+2

** Importante: ** Solo agregar la carpeta que contiene no es suficiente. Además, agregar una dependencia en la configuración del proyecto del complemento (en lugar de MANIFEST/plugin.xml) no hace más que "ocultar" los errores en tiempo de compilación. –

+0

esto solo agregará frascos del proyecto actual. No es posible agregar contenedores externos (ubicados en algún lugar del disco), pero no es portátil, pero cuando lo necesita lo necesita. – ACV

8

Esta es una manera fácil, aunque sí crear un plug-in adicional.

En Eclipse:

  • Elija New>Other, entonces Plug-in Development>Plug-in from existing JAR archives.
  • Elija los frascos que desea incluir.
  • En la página siguiente, configure el complemento.
  • En el manifiesto de su complemento, agregue el nuevo complemento como una dependencia.
  • En las propiedades de su complemento, agregue el nuevo proyecto en Java Build Path en la pestaña Projects.

Editar: Usted puede ser capaz de combinar los frascos en su plug-in de lugar que combina ambos sugerencias de Zsolt y user714965 a continuación.

+2

Si combina varios tarros, también debe asegurarse de que su licencia lo permita. –

10

Siguiendo los pasos descritos a continuación, se incluirán los archivos JAR externos al exportar el plug-in:

  1. Copie los archivos JAR externos necesarios en una carpeta en su proyecto de plug-in; Me gusta llamar a esta carpeta lib, pero lo que sea que funcione para usted.
  2. Abra el archivo build.properties en su proyecto de plug-in y compruebe los JAR que desea incluir en la construcción en la sección Binary Build de la izquierda.
+1

Aunque es posible combinar los archivos jar en el mismo paquete, no es la manera "correcta" de hacerlo en un entorno OSGi - http://stackoverflow.com/questions/3013583/what-is-the-standard-way- to-bundle-osgi-dependent-libraries/3015072 # 3015072 – Robin

+1

@Robin Absolutamente, lo que describí anteriormente fue la solución rápida y sucia para el problema en cuestión. –

4

Esto es lo que ha funcionado para mí. Si son verdaderamente externos, y este es un proyecto para su empresa que no va a ser "salvaje" y usted controla el medio ambiente, y los tiene en el sistema de archivos, diga en/opt/java/lib/somedir /some.jar puede decirle al paquete dónde encontrarlos agregándolos a la entrada Bundle-ClassPath en MANIFEST.MF bajo META-INF. La sintaxis es la siguiente: Bundle-ClassPath:., externa: /opt/java/lib/somedir/some.jar, externa: /opt/java/lib/someotherdir/someother.jar

También sería Es prudente utilizar estos en su ruta de compilación para que esté trabajando con los mismos jarrones tanto en entornos de compilación como de tiempo de ejecución.

He hecho esto donde los Jars son multiuso (como apache-commons) en nuestros sistemas de archivos y una vez más controlamos el entorno.

referencia el siguiente: http://www.eclipsezone.com/eclipse/forums/t51870.html

+0

¡Gracias! Esta es la respuesta real y funciona !. Solo tenga en cuenta que '* .jar' no funcionará. – ACV

1
  1. Copiar los archivos JAR externos necesarios en una carpeta en su proyecto de plug-in; Me gusta llamar a esta carpeta lib, pero lo que sea que funcione para usted.
  2. ..pero como apuntó a Zsolt Török (su solución no funcionó para mí) hice doble clic en el plugin.xml, fui a la pestaña de compilación, en la parte inferior, hice clic en Agregar JAR ..., y oye Presto, mostró mi proyecto, y luego navegué hacia lib e incluí el contenedor externo, como en el paso 1.
0

El enfoque de Andy Thomas funciona principalmente, pero también necesita exportar los paquetes necesarios para el existente complemento en el nuevo complemento envoltorio para que el plugin pueda acceder a ellos en tiempo de ejecución.

+0

esta respuesta es más adecuada para un comentario. También bienvenido a SO :). –

Cuestiones relacionadas