2010-08-29 16 views

Respuesta

25

En caso de que esté utilizando eclipse: hay un asistente para eso.

Le permite seleccionar varias bibliotecas jar y crea un proyecto de complemento (es decir, paquete OSGi) que incluye estos archivos jar.

Se puede encontrar aquí:

File -> New -> Other ... -> Plug-in from Existing jar Archives. 

alt text

+4

+1 porque el propio OP no lo votó :((si es correcto, ¡vuélvalo a votar!) – helios

+0

La captura de pantalla de este asistente es suficiente. ¡Gracias! –

9

En principio sólo tiene que añadir metadatos OSGi para el manifiesto

Hay un creador paquete para Eclipse que da una forma muy práctica de agregar estas entradas que deben ser parte del Plugin Dev Kit de herramientas.

Aquí hay un article que detalla el proceso y cómo hacerlo con la herramienta Bnd, maven, etc.

Me gusta personalmente the pax tools mucho. Está basado en línea de comandos, pero es muy práctico. Para crear un paquete OSGi de un contenedor existente, puede usar bnd tool.

+0

las herramientas pax y los enlaces pax-wrap-jar están muertos – maarten

5

primer lugar, compruebe si puede encontrar una versión habilitada osgi de su biblioteca desde los repositorios

  1. SpringSource http://www.springsource.com/repository
  2. Fusesource http://repo.fusesource.com/

Si no encuentra la OSGi versiones habilitadas. Puede continuar usando la herramienta pax - PaxConstruct o usar el aQute's Bnd tool.

+1

Fusesource http://repo.fusesource.com/ está muerto – maarten

+0

@maarten Gracias, actualicé los enlaces a recursos más recientes. –

+0

@PeterTillemans, ¿qué enlaces actualizaste? Desafortunadamente, no sé cuál es la nueva URL de repositorio de Fusesource. Por favor, siéntase libre de enlaces en mi respuesta. –

1

El proyecto Eclipse Bundle Recipe proporciona un enfoque basado en Maven para añadir los datos de OSGi meta a JAR consumidos desde un repositorio Maven.

En su núcleo, utiliza el bnd tool. Esta herramienta es como una navaja suiza. Analiza jarras y archivos de clase y calcula correctamente las importaciones y exportaciones de paquetes. Debe usar bnd para convertir los tarros de propiedad usted mismo. Es available in Maven Central.

0

Retraso en la llegada a la fiesta:

Si está utilizando Gradle, se puede añadir el frasco como una dependencia normal de su proyecto si se aplica el plugin osgi-run.

El plugin osgi-run envolverá el tarro transparentemente en un paquete para usted, exportará cada paquete en él y calculará todas sus importaciones. Como Gradle sabrá las dependencias transitivas de la jar, también hará lo mismo por ellas, si es necesario.

El frasco (s) será parte del tiempo de ejecución de OSGi OSGi crea plazo, que luego se puede poner en marcha con gradle runOsgi o gradle createOsgi, a continuación, ejecutar cualquiera de las run.sh o run.bat guiones.

La envoltura real se realiza por Bnd, la navaja suiza del mundo OSGi, por supuesto.

Si desea configurar cómo se realiza la envoltura (lo que se debe importar/exportar, generalmente), puede hacerlo fácilmente en el archivo de construcción Gradle, consulte documentation para obtener más información.

Ejemplo:

wrapInstructions { 
    // use regex to match file name of dependency 
    manifest("c3p0.*") { 
     // import everything except the log4j package - should not be needed 
     instruction 'Import-Package', '!org.apache.log4j', '*' 
     instruction 'Bundle-Description', 'c3p0 is an easy-to-use library for making traditional ' + 
       'JDBC drivers "enterprise-ready" by augmenting them with functionality defined by ' + 
       'the jdbc3 spec and the optional extensions to jdbc2.' 
    } 
} 
2
  • Crear un nuevo proyecto de plug-in desde el archivo JAR existente.

enter image description here

  • Añadir el archivo jar que se exportarán

enter image description here

  • Haga clic en siguiente y el nombre del proyecto.

enter image description here

  • NOTA:
  • Hacer una infraestructura de OSGi que está seleccionado en la plataforma de destino.
  • Descomprimir los archivos JAR en el proyecto se deselecciona -> deseleccionándolo, exportará todos los paquetes de la jarra

  • si descomprimir los archivos JAR en el proyecto es seleccionados a continuación, deberá exportar manualmente los paquetes necesarios en el archivo MANIFEST.MF.

Haga clic en terminar. Encontrará el proyecto con el nombre transport-5.1.1 creado en su espacio de trabajo. También puede verificar, todos los paquetes del JAR se exportan en el archivo MANIFEST.MF.

Cuestiones relacionadas