2012-09-11 15 views
7

Ésta es una pregunta que se haya solicitado con frecuencia en la comunidad Tycho:Eclipse RCP construido por Tycho incluye dependencias opcionales deseados

emigré mi Eclipse RCP construir a partir de [la tecnología anterior, por ejemplo, eclipse-application/PDE headless build/...] al nuevo recommended way of building products with Tycho con el tipo de embalaje eclipse-repository. Ahora mi distribución contiene más paquetes que antes.

El problema parece ser que Tycho extrae las dependencias opcionales de los paquetes incluidos en mi producto. ¿Cómo puedo prevenir esto?

Respuesta

9

de Tycho eclipse-repository envases tipo builds product distributions con la misma tecnología (llamada p2) que utiliza también cuando, por ejemplo, la instalación de una nueva característica en su IDE de Eclipse. Esto tiene la ventaja de que, a diferencia de otras tecnologías de compilación, no necesita especificar manualmente todas las dependencias de los paquetes que desea en su producto, pero Tycho/p2 las incluirá automáticamente. (Esto es importante porque de lo contrario los paquetes no se iniciarían en tiempo de ejecución).

Por otro lado, esto también puede ser una desventaja: Tycho/p2 también incluye ciertas dependencias opcionales que preferiría excluir de su producto.

No hay ninguna opción para decirle a Tycho que no incluya ninguna dependencia opcional (porque p2 no tiene esta opción). Sin embargo se puede identificar los paquetes opcionales que no desea, de forma explícita y excluirlos de la target platform con la siguiente configuración:

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
     <filters> 
     <filter> 
      <type>eclipse-plugin</type> 
      <id>unwanted.bundle.id</id> 
      <removeAll /> 
     </filter> 
     </filters> 
    </configuration> 
</plugin> 

A continuación, la compilación del producto ya no se puede ver el haz excluidos, y se omite de la instalación.

Nota: Si obtiene un error de resolución de dependencia después de agregar la configuración anterior, hay algo que no requiere el paquete de forma opcional. Aunque es un poco complicado de leer, el mensaje de error le indicará la cadena de dependencias que conduce desde algo que está creando hasta el paquete eliminado.

Cuestiones relacionadas