2011-03-02 16 views
7

He seguido http://www.eclipse.org/equinox/documents/quickstart-framework.php pero parece ser anterior y no válido.Eclipse Equinox, cómo configurar cargar automáticamente los paquetes en la carpeta del complemento

no hay tal paquetes como se describe org.eclipse.update.configurator_3.2.100.jar

he intentado con el org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503, pero no funciona.

¿Alguien puede decirme cómo hacer que Equinox cargue automáticamente los paquetes dentro de la carpeta de complementos?

Respuesta

12

El enfoque más simple sería usar Apache Felix File Install. Funciona perfectamente con Equinox, solo necesita colocar los parámetros de configuración de la instalación de archivos en la configuración/config.ini. Sin embargo, tenga en cuenta que si inicia Equinox a través del iniciador JAR o vía binario, el directorio de trabajo sería el padre de la configuración/o los complementos/directorio.

extracto de nuestro proyecto config.ini:

# Start File Install itself 
osgi.bundles=reference\:file\:[email protected]\:start 
# The name of the directory to watch 
felix.fileinstall.dir=./plugins 
# A regular expression to be used to filter file names 
# We have all bundles in plugins/ directory, this regexp 
# forbids monitoring bundles that are started via osgi.bundles property 
felix.fileinstall.filter=^(?!org.apache.felix.fileinstall|org.eclipse.osgi).* 
# Determines if File Install waits felix.fileinstall.poll milliseconds before doing an initial scan or not. 
felix.fileinstall.noInitialDelay=true 
# Not sure why we have this... 
felix.fileinstall.start.level=2 

Otra posible solución sería utilizar Eclipse P2. Es mucho más avanzado y poderoso, aunque me resulta bastante difícil de usar.

Lo bueno es que si su aplicación es independiente del modo en que se aprovisionan los paquetes (y debería ser así), siempre puede cambiar de opinión más adelante.

+0

Me gustaría utilizar la instalación de archivos Apache Felix, pero ¿cómo puedo poner en Eclipse config.ini la configuración "felix.fileinstall.dir"? Intenté felix.fileinstall.dir = .. \ plugins \ sin éxito ... ¿cómo puedo poner esta propiedad del sistema en un archivo de configuración? –

+1

Estoy utilizando ahora la instalación de archivos con los parámetros de jvm a las propiedades del sistema. Es como -Deparemter = valor ... Está funcionando ahora. –

+0

¿Has probado felix.fileinstall.dir =./Plugins? Si inicia Equinox a través del jar/binary del lanzador, el directorio de trabajo sería el padre de la configuración/directorio. Además de eso, debería funcionar bien. –

0

Aquí está el fragmento de mi instalador automático de eclipses escrito en hormiga.

Esto instala todas las características del sitio de actualización personalizado. El código es 'como está', pero seguro me hubiera gustado tener algo como esto para guiarme cuando lo escribí.

Este script también usa la extensión antcontrib para hormiga. Las tareas de Antcontrib tienen el prefijo de espacio de nombres 'ac:'

Espero que esto ayude.

<property name="real.eclipse.home" location="${eclipse.home}/eclipse"/> 

    <property file="${real.eclipse.home}/configuration/config.ini" prefix="ECLIPSE_CONFIG"/> 

    <property name="eclipse-plugins.dir" location="${real.eclipse.home}/plugins"/> 

    <path id="newest.equinox.launcher-library.path.id"> 
     <dirset dir="${eclipse-plugins.dir}"> 
     <include name="org.eclipse.equinox.launcher.*"/> 
     </dirset> 
    </path> 

    <property name="equinox.launcher-library.full-path" refid="newest.equinox.launcher-library.path.id"/> 

    <basename property="equinox.launcher-library.dir" file="${equinox.launcher-library.full-path}"/> 

    <echo message="equinox.launcher-library.dir='${equinox.launcher-library.dir}'"/> 

    <path id="newest.equinox.launcher.path.id"> 
     <fileset dir="${eclipse-plugins.dir}"> 
     <include name="org.eclipse.equinox.launcher_*.jar"/> 
     </fileset> 
    </path> 

    <property name="equinox.launcher.jar" refid="newest.equinox.launcher.path.id"/> 
    <basename property="equinox.launcher.jar.basename" file="${equinox.launcher.jar}"/> 

    <echo message="equinox.launcher.jar='${equinox.launcher.jar}'"/> 

    <java jar="${equinox.launcher.jar}" 
     fork="true" 
     failonerror="true" 
    > 
     <arg value="-consolelog"/> 
     <arg value="-application"/> 
     <arg value="org.eclipse.equinox.p2.director"/> 
     <arg value="-repository"/> 
     <arg value="http://${repository.server}/custom-update-site"/> 
     <arg value="-list"/> 
     <redirector 
     logError="true" 
     outputproperty="features.list" 
     > 
     <outputfilterchain> 
      <linecontains> 
      <contains value="feature.group="/> 
      </linecontains> 
      <replaceregex pattern="(.*feature\.group)=.*$" replace="\1"/> 
     </outputfilterchain> 
     </redirector> 
    </java> 

    <ac:for list="${features.list}" delimiter="${line.separator}" trim="true" param="feature"> 
     <sequential> 
     <ac:if> 
      <isset property="feature.comma.list"/> 
      <then> 
      <ac:var name="feature.comma.list" value="${feature.comma.list},@{feature}"/> 
      </then> 
      <else> 
      <property name="feature.comma.list" value="@{feature}"/> 
      </else> 
     </ac:if> 
     </sequential> 
    </ac:for> 

    <echo message="Found following features to install"/> 
    <echo message="${features.list}"/> 

    <java jar="${equinox.launcher.jar}" 
     fork="true" 
     failonerror="true" 
    > 
     <arg value="-consolelog"/> 
     <arg value="-application"/> 
     <arg value="org.eclipse.equinox.p2.director"/> 
     <arg value="-repository"/> 
     <arg value="http://${repository.server}/custom-update-site"/> 
     <arg value="-destination"/> 
     <arg file="${real.eclipse.home}"/> 
     <arg value="-installIU"/> 
     <arg value="${feature.comma.list}"/> 
     <arg value="-profile"/> 
     <arg value="${ECLIPSE_CONFIG.eclipse.p2.profile}"/> 
    </java> 

P.S. Por su utilidad y complejidad, Eclipse P2 es seguramente una de las características menos documentadas.

0

En la carpeta de instalación de Eclipse tiene el archivo bundles.info, por ejemplo:

eclipse-3.6.1/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info 

puede modificar el archivo para agregar cualquier paquete que desee, y también el nivel de inicio. Pero el método más simple para agregar paquetes a una instalación de eclipse es agregarlos a la carpeta "dropins". Esto conducirá a una modificación automática del archivo bundle.info.

+0

hmmm ... ¿dónde está la carpeta "droppins"? ¿El equinoccio cambiará bundles.info automáticamente en el tiempo de ejecución? –

+1

En eclipse-3.6.1 /, al mismo nivel que los complementos y las funciones. Y sí, Equinox lo hará automáticamente. Aquí tienes más información: [link] (http://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins). El mecanismo es similar al que hace la instalación de Felix, pero "el camino del eclipse" :) – RaduK

+0

Esto no funciona para una instalación sencilla de Equinox. Los JAR del directorio dropins no se cargan automáticamente. – Robert

Cuestiones relacionadas