2010-07-06 12 views
6

Actualmente estoy tratando de hacer funcionar mi pde-build sin cabeza, pero estoy atascado en un punto en el que no sé cómo continuar. El problema es cómo definir la plataforma de destino relacionada para compilar los complementos. Tengo un build.bat con la siguiente llamada (todo en una línea!):Plataforma de destino para PDE La construcción sin cabeza no funciona

java -jar D:\target\eclipse\plugins\org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 
-application org.eclipse.ant.core.antRunner 
-f D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml 
-Dbuilder=c:\pde-build\scripts %* 

intenté crear la plataforma Eclipse objetivo desde diferentes partes: El SDK Eclipse SDK, RCP, Delta Pack, PDE SDK en todas las combinaciones, pero ninguna de ellas funcionó bien.

me dieron el siguiente error:

BUILD FAILED 
D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_20100114\scripts\productBuild\productBuild.xml:18: Cannot fin 
d ${eclipse.pdebuild.scripts}/build.xml imported from D:\target\eclipse\plugins\org.eclipse.pde.build_3.5.2.R35x_2010011 
4\scripts\productBuild\productBuild.xml 

donde las variables $ {} eclipse.pdebuild.scripts no se resolvió. También traté de dar este parámetro a través de la línea de comando, pero luego recibí otro error con respecto a la tarea svn perdida, que es absolutamente confuso ya que esto está funcionando con mi instalación de eclipse local a la que se hace referencia.

Cuando reemplazo la ruta de d:/target/eclipse a mi instalación local de eclipse, la compilación pde funciona como se esperaba. Esto me lleva al punto de que la configuración del eclipse de destino no es correcta, pero en el momento no tengo idea de cómo configurar esto!

Mi objetivo es automatizar la construcción de pde primero en mi sitio local sin hacer referencia a mi eclipse local y más tarde integrar este proceso de construcción en nuestra instancia de cruisecontrol en ejecución.

Como ya vi otra pregunta sobre cómo definir el eclipse objetivo, me gustaría que cualquiera pueda aportar pistas o datos sobre el problema.

cordiales, Andreas

+0

Para obtener información, la $ {} eclipse.pdebuild.scripts variable se establece en código Java por el apllication antrunner (en el plugin de org.eclipse.pde.build en los org.eclipse.pde.internal.build.properties paquete) –

Respuesta

0

después de algo más de tiempo de investigación descubrí, lo que hice mal hasta ahora. Como mencioné anteriormente, definir la plataforma objetivo no es tan fácil como copiar el SDK y los complementos en una ubicación (como lo fue en los primeros tiempos del eclipse dev).

La solución de trabajo es la siguiente: Copiando el eclipse SDK en la ubicación de destino y ejecuta esta versión. Instale dentro de este las PDE-Tools necesarias para permitir el desarrollo de complementos. Después de eso, cierre el IDE y copie el paquete delta + el respectivo plugin svn (utilicé org.eclipse.pde.build.svn-1.0.1RC2 desde sourceforge) en la plataforma de destino y listo. Ahora mi compilación de PDE automatizada se está ejecutando como se esperaba.

El único problema menor ahora es el siguiente: El producto resultante contiene entradas de menú específicas de eclipse que no están allí cuando ejecuté esto desde mi dev-eclipse.

¿Alguna pista sobre eso?

0

Me acaba de publicar una respuesta a mi pregunta sobre este tipo de temas, puede ser que esto puede ayudarle a:

Plugin product VS Feature product

+0

Hola, Manuel, escribí una respuesta aquí que me llevó a una solución de trabajo. Pero todavía estoy buscando la plataforma objetivo "óptima". sin embargo, mi producto contiene todos los complementos necesarios y, por lo tanto, puede ejecutarse. Intenté esto con el plugin template + view que da como resultado un archivo zip de 48MB ;-). – Andreas

5

Al realizar una acumulación sin cabeza, el objetivo puede estar separado del eclipse que es en realidad ejecuta la construcción en sí. El problema que tienes aquí es que el eclipse que estabas usando para ejecutar la compilación no tenía PDE/Build correctamente instalado.

Esta es la razón por la cual ${eclipse.pdebuild.scripts} no se configuró, porque PDE/Build no se instaló en esa instancia de eclipse, org.eclipse.pde.el paquete de compilación no se resolvió y nunca se llamó al código que establece esta propiedad. Del mismo modo, las entradas necesarias classpath ant para tareas PDE/Build tampoco se habrían configurado correctamente.

Necesita el Eclipse con PDE instalado en su interior para ejecutar la construcción, pero el objetivo para la construcción puede ser independiente de esto.

En el archivo se encuentra bajo build.properties-Dbuilder=c:\pde-build\scripts puede establecer varias properties:

  1. baseLocation Esta es una ruta a un eclipse que es su objetivo.
  2. buildDirectory Aquí es donde realmente tendrá lugar la compilación, se busca la fuente en los complementos/y en las características/subcarpetas, pero si ya hay complementos binarios aquí, esos se vuelven parte del objetivo también.
  3. pluginPath Esta es una lista de rutas (separadas por ';' en windows o ':' en Linux) que contienen otras ubicaciones que deben considerarse como parte de su destino. Estas ubicaciones pueden ser varias:
    1. La raíz de una instalación similar a un eclipse con complementos/y características/subcarpetas. Esta es una buena forma de proporcionar el paquete delta en lugar de solo descomprimirlo en la parte superior de una instalación de eclipse.
    2. La raíz de una carpeta similar a un espacio de trabajo, donde todas las subcarpetas se tratan como complementos o funciones dependiendo de la presencia de un manifiesto o feature.xml.
    3. La raíz de un paquete o característica, o el contenedor para un paquete.
  4. Si usted está haciendo una acumulación p2 (p2.gathering = true) también puede proporcionar repositorios p2 bajo un ${repoBaseLocation} que se transforma y se colocan debajo de ${transformedRepoLocation} y pasarán a formar parte de su blanco, y los metadatos P2 no recibirá reused durante La construcción.
+0

Hola Andrew, gracias por la gran explicación. ¡Creo que esto ahora es mucho más claro para mí! Ojalá otros también ;-) – Andreas

Cuestiones relacionadas