eclipse - Definir sitios de actualización en el archivo config.ini
eclipse-plugin eclipse-rcp (2)
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.
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 estén en la lista de sitios. Idealmente, los únicos en la lista.
Dado que es probable que tenga que volver a hacerlo, y no tengo ninguna posibilidad de recordar cómo hacerlo la próxima vez, escribiré los pasos que pasé:
Creé un 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);`
De acuerdo con la wiki de Eclipse, el inf-archivo podría colocarse 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.
Una vez finalizada la compilación, el repositorio tenía un content.jar. Dentro de content.jar había un content.xml. Al examinarlo, 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 verificó que la exportación realmente viera mi archivo p2.inf y hacer algo con él.
Para instalar desde el repositorio utilicé un script de Eclipse Director:
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 instaló el producto desde el repositorio hasta el destino.
Puede agregar un archivo p2.inf
que p2.inf
los sitios de actualización particulares 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 agregaría www.eclipse.org/equinox/p2/testing/updateSite
.
Este archivo ( p2.inf
) debe ir en el mismo directorio que su archivo MANIFEST.MF
. Puedes leer más sobre esto aquí .