2012-10-04 10 views
7

Estoy creando un producto basado en Eclipse 3.6.2 para nuestro proyecto. La idea es crear una instalación de Eclipse que tenga todos los complementos que necesitamos y todas las configuraciones estén configuradas según las necesitemos para el proyecto.Definir sitios de actualización en el archivo config.ini

Como parte de eso, quiero asegurarme de que nuestros sitios de actualización estén incluidos, pero ¿cómo puedo hacer eso?

Si elijo exportar preferencias, los sitios de actualización no están incluidos. Puedo exportar sitios de actualización desde la página de preferencias y obtener un archivo XML con ellos, pero ¿cómo puedo incluirlo en mi archivo config.ini? ¿O hay alguna otra manera?

El objetivo es que cuando el usuario ejecute el producto Eclipse personalizado, nuestros sitios de actualización estarán en la lista de sitios. Idealmente, los únicos en la lista.

Respuesta

7

se puede añadir un archivo de p2.inf que instruye a los sitios de actualización en particular cuando se instalan cosas:

instructions.configure=\ 
addRepository(type:0,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite);\ addRepository(type:1,location:http${#58}//www.eclipse.org/equinox/p2/testing/updateSite); 

Esto añadiría www.eclipse.org/equinox/p2/testing/updateSite.

Este archivo (p2.inf) debe ir en el mismo directorio que su archivo MANIFEST.MF. Puede leer más sobre esto here.

+0

Gracias, pero no está funcionando. ¿Cuándo se ejecutará p2.inf? Lo he agregado a mi función en la que consiste el producto. Luego uso el asistente de productos de exportación Eclipse para crear un producto y un repositorio. Ejecutar el producto o instalar desde el repositorio no me da un Eclipse con los sitios de actualización agregados. ¿La fase en el archivo p2 tiene algo que ver con esto? Estoy usando 'configurar' en este momento. – Fredrik

+1

Las instrucciones deben crearse durante la compilación y almacenarse en content.xml. Cuando instale desde el repositorio, debe agregarse. Este ejemplo agrega los valores predeterminados al eclipse SDK: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/tree/eclipse.platform.releng.tychoeclipsebuilder/sdk/sdk.p2. inf?h = R4_2_maintenance –

+0

Raro, está funcionando ahora aunque no creo que haya hecho algo diferente. Supongo que culparé al gremling de la computadora. Gracias @PaulWebster e Ian – Fredrik

1

Dado que existe una posibilidad probable que voy a tener que hacer esto de nuevo, y ninguna posibilidad Recuerdo cómo hacerlo la próxima vez, voy a escribir por las escaleras Fui a través de:

creé una archivo p2.inf con instrucciones;

instructions.configure=\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);\ 
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//<my_url_here>,name:<my_name_here>,enabled:true);` 

Según the Eclipse wiki la inf-archivo puede ser colocado en el mismo directorio que mi feature.xml, así que eso es lo que hice.

Tenía un producto que consistía en esta característica, así que exporté el producto usando el asistente de exportación de productos Eclipse. Me aseguré de construir un repositorio.

Después de que se hizo la compilación, el repositorio tenía un content.jar. Dentro de content.jar había un content.xml. Examinarlo, no pude encontrar:

<touchpointData size='1'> 
    <instructions size='1'> 
    <instruction key='configure'> 
     org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(<all my update sites>); 
    </instruction> 
    </instructions> 
</touchpointData> 

Así que esto verifica que la exportación haya hecho ver mi archivo p2.inf y hacer algo con él.

Para instalar desde el repositorio He utilizado un guión director de Eclipse:

cmd /c "C:\Program\Eclipse\director\director -consoleLog -bundlepool c:/program/eclipse/eclipse3.6_custom -profileProperties "org.eclipse.update.install.features=true" -i MyProduct.Product -r "file:/C:\eclipse\exported\repository" -d c:/program/eclipse/eclipse3.6_custom -p helios"` 

El script instala el producto desde el depósito hasta el destino.

+2

Gracias pasado-Fredrik, esa fue una gran información para haber anotado, ¡choca esos cinco! :) – Fredrik

+1

Es un poco injusto, ese futuro: Fredrik no puede dejar de lado a Fredrik (porque está perdido y se ha ido en el flujo del tiempo). – Lii

Cuestiones relacionadas