Actualmente estoy intentando hacer mi compilación (~ 30 paquetes) por tycho.
Me enfrenté a algunos problemas confusos al usar Mockito en mis pruebas unitarias.
Creé un eclipse-test-plugin
como proyecto de fragmento para el paquete probado. Dado que tycho debería resolver los paquetes necesarios utilizando el manifiesto, eliminé la dependencia a mockito del pom.xml
.
Cuando intento agregar mockito a los paquetes requeridos en el manifiesto, mockito no aparece en la lista. Encontré this post y creé una plataforma de destino que apuntaba a eclipse índigo.
Incluí los detalles de la plataforma, así que no necesito el paquete eclipse delta. Entonces ocurre la primera cosa extraña. Eclipse me dice que hay algunas dependencias insatisfactorias y cuando configuro la plataforma de destino recién creada como activa dentro de Eclipse, no se pueden resolver más paquetes como org.osgi.framework
, etc. por eclipse. Pero cuando construyo un eclipse-product
usando tycho y la plataforma de destino, está funcionando.¿Cómo hacer referencia a mockito dentro de tycho?
si fijo la instalación actual eclipse como plataforma activa se resuelven los paquetes. He seleccionado el seguimiento de la liberación de índigo:
- Eclipse RCP Plug-in inicial de desarrolladores Componentes
- Equinox objetivo Componentes
- embarcadero objetivo
Así que mi primera pregunta es "¿Qué está mal con mi plataforma de destino para que Tycho pueda usarlo pero ¿eclipse no? "
Para acercarme a mi problema original (ejecutar mockito) configuré la instalación del eclipse actual como la plataforma de destino activa. Eclipse luego puede resolver el paquete org.osgi.framework
y otros.
Agregué la dependencia eliminada previamente a mockito de nuevo a mi pom.xml
como en la publicación mencionada anteriormente. Pero todavía no puedo encontrar el mockito cuando intento agregarlo a los paquetes requeridos en el manifiesto.
Así que mi segunda pregunta es "¿Qué estoy haciendo mal? ¿Cómo se hace referencia a paquetes que no se publican en el sitio de actualización de Eclipse, por ejemplo el repositorio central de Maven?"
Actualización: Durante mi investigación, he encontrado dos formas de incluir paquetes de los no-P2-update-sitios en mi objetivo de la plataforma:
- Nexus Pro
El profesional la versión de Nexus admite repositorios p2-Proxy que pueden envolver repositorios maven predeterminados como Maven Central Repository en un sitio de actualización p2, pero la versión profesional cuesta alrededor de $ 800 por año. - Crear un eclipse-repositorio
Se puede crear un nuevo proyecto Maven con el empaquetadoeclipse-repository
incluyendo todos sus paquetes deseados. El artefacto creado se implementa en un servidor web común.
En su blanco-plataforma a continuación, puede hacer referencia a la cesión temporal p2-proxy Nexus o de la web alojado p2-repo.
¿Alguien conoce otras formas, probablemente más conveniente/menos costoso?
Por favor, me ayudan a entender el mundo confuso de Tycho un poco más ...
Gracias de antemano
Esta pregunta tiene demasiados extremos abiertos; debería considerar limitarlo a una pregunta, por ej. "¿Cómo hacer referencia a Mockito con Tycho?" – oberlies
He agregado una respuesta a una pregunta similar que enumera una forma nueva y elegante de crear un repositorio de Eclipse de manera muy automatizada y limpia a través de 'p2-maven-plugin' - http://stackoverflow.com/a/24777560/464590 – berezovskyi