Eclipse: ¿Cómo garantizar que jar en el complemento tenga prioridad sobre otras versiones en otros lugares?

StackOverflow https://stackoverflow.com/questions/460872

Pregunta

Estoy desarrollando un complemento de eclipse que contiene una versión específica de Lucene. Necesito generar un índice de búsqueda e implementarlo para que pueda leerlo otra aplicación que use la misma versión de Lucene.

Recientemente actualicé eclipse a 3.4 y la segunda aplicación ahora no puede leer el índice de búsqueda. Veo que eclipse 3.4 contiene una versión más nueva de Lucene y supongo que esta versión se usa al generar el índice.

¿Cómo puedo determinar exactamente qué versión de Lucene se está utilizando en el momento en que se genera el índice? Mi classpath del complemento comienza con mi versión incluida de Lucene, por lo que habría esperado que mi versión tuviera prioridad.

TIA

¿Fue útil?

Solución 2

Parece funcionar ahora. Para aquellos de ustedes que estén interesados, esto es lo que tuve que hacer:

  • Se eliminó el tarro Lucene 1.4.3 de mi complemento
  • Copió el antiguo plugin Lucene de una versión anterior de eclipse en la versión 3.4.
  • Eliminado todas las dependencias en el asistente plugin.xml. Ahora todos los complementos de Lucene son visibles.
  • Seleccionó la versión 1.4.xx y cambió las propiedades para establecer una versión máxima de hasta 1.5
  • Se agregaron las otras dependencias del complemento
  • Ruta de compilación modificada: se eliminó el antiguo jar, se agregó la dependencia del complemento Lucene 1.4.3
  • Configuración de ejecución recalculada. El complemento Lucene 1.4.3 no se agregó automáticamente, por lo que se agregó a mano.
  • Ahora, cuando se genera el índice, se carga la versión 1.4.3.

Espero que esto sea útil para alguien.

Otros consejos

Es posible que desee dar ClassPath Checker y ClassPath Helper una prueba.

Es posible que pueda determinar con precisión qué jar se utilizan en su entorno de desarrollo, a fin de comparar aquellos con jarras presentes en su entorno de implementación, donde Luce genera el índice.

Conflictos de jarras del ClasPath Checker:
classpath checker

Classpath Helper vista de clases bloqueadas (oscurecidas):
ayudante de classpath

Dado que está desarrollando un complemento Eclipse, debe buscar en OSGi. Los complementos de Eclipse son instancias de paquetes OSGi y OSGi tiene un modelo sólido para manejar dependencias y versiones entre paquetes.

No conozco su código específico, pero si planeara usar Lucene en mi complemento, usaría la funcionalidad 'Import-Package' o 'Require-Bundle' de OSGi para expresar la dependencia; No incluiría el Lucene JAR en mi complemento. Si cada complemento incluye su propio JAR Lucene, desperdiciaría espacio, pero lo más importante, terminaría con versiones incompatibles (como las que tiene).

el sitio web de OSGI no es el mejor lugar para comenzar su viaje OSGi (es bueno para las especificaciones OSGi y Peter Blog de Kriens). Es mejor comenzar con algo como el libro en línea de Neil Bartlett.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top