Desarrollar proyectos Flex en ant/nant
build-process flexbuilder (2)
Si bien no es una solución para su problema específico, una solución alternativa es usar un servidor de integración continua.
Con algo así como Cruise Control puedes tener un arranque automatizado cada vez que alguien envía algo al control de origen. 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.
Tenemos un problema recurrente en mi empresa con interrupciones de compilación en nuestros proyectos 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 construyendo 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.
Comenzamos por el camino de escribir un programa de utilidad para convertir los archivos de proyecto de FlexBuilder en un {projectname}-config.xml
, pero está a) indocumentado yb) un hack horrible.
He buscado en 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 ventanas máquinas), y 2) solo funciona bien cuando se ejecuta desde el IDE, por lo que no se puede incorporar en el proceso de compilación.
Mañana, vamos a discutir un par de opciones, ninguna de las cuales soy terriblemente aficionado:
a) Agregue un evento de registro posterior a Subversion 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 solución buena en Google. ¿Cómo han lidiado otros grupos con este problema?
Descubrí que uno de los requisitos no documentados para usar hormiga con Flexbuilder era tener la variable FLEX_HOME establecida dentro de su script ant. Por lo general, dentro de build.xml tiene lo siguiente:
<!– 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 obtener coherencia entre plataformas y entornos si está utilizando múltiples plataformas para sus desarrolladores.
HTH