2008-09-12 18 views
7

Tenemos un problema recurrente en mi empresa con interrupciones de compilación en nuestros proyectos de Flex. El problema se produce principalmente porque la construcción que hacen los desarrolladores en sus máquinas locales es fundamentalmente diferente de la construcción que se produce en la máquina de compilación. Los desarrolladores están creando los proyectos usando FlexBuilder/eclipse y la máquina de compilación está utilizando los compiladores de línea de comando. Inevitablemente, el {projectname}-config.xml y/o el archivo de proceso por lotes que ejecuta la compilación no se sincronizan con los archivos de proyecto utilizados por eclipse, por lo que la compilación tiene éxito en la máquina del desarrollador, pero falla en la máquina de compilación.Proyectos de Building Flex en ant/nant

Comenzamos por el camino de escribir un programa de utilidad para convertir archivos de proyecto de FlexBuilder en un archivo {projectname}-config.xml, pero está a) indocumentado yb) un hack horrible.

He examinado el modificador -dump-config para obtener los archivos de configuración, pero esto tiene un par de problemas: 1) El archivo de configuración generado tiene rutas absolutas que no funcionan en nuestro entorno (algunos desarrolladores usan Mac, algunas máquinas de Windows), y 2) solo funciona bien cuando se ejecuta desde el IDE, por lo que no se puede construir en el proceso de compilación.

Mañana, vamos a discutir un par de opciones, ninguna de las cuales estoy terriblemente aficionado:

a) Añadir un puesto de control en caso de subversión para eliminar estas referencias absolutas, o
b) agregue un proceso de preconstrucción que elimine la referencia absoluta.

No puedo creer que seamos el primer grupo de desarrolladores que se tope con este problema, pero no puedo encontrar ninguna buena solución en Google. ¿Cómo han lidiado otros grupos con este problema?

Respuesta

1

Encontré que uno de los requisitos no documentados para usar hormiga con Flexbuilder era tener la variable FLEX_HOME establecida dentro de su script ant. Típicamente dentro de build.xml tienen las siguientes:

<!– Module properties –> 
<property environment=”env”/> 
<property name=”build.dir” value=”build”/> 
<property name=”swf.name” value=”MyProjectSwf”/> 
<property name=”root.mxml” value=”Main.mxml”/> 
<property name=”locale” value=”en_US”/> 
<property name=”FLEX_HOME” value=”${env.FLEX_HOME}”/> 

Esto puede parecer una molestia, pero es un enfoque mucho más razonable para la obtención de coherencia entre plataformas y entornos de si está utilizando múltiples plataformas para sus desarrolladores.

HTH

1

Aunque no es una solución a su problema específico, una solución es utilizar un servidor de integración continua.

Usando algo como Cruise Control puede tener un arranque automático automatizado cada vez que alguien envía algo al control de código fuente. Entonces, si la construcción falla por algún motivo (incluidas las incoherencias del entorno), le corresponde al desarrollador que la rompió repararla. Puede configurarlo para enviar correos electrónicos sobre fallas/éxito de varias maneras.