tarea - que es ant en ingles
Automatización del flujo de trabajo: Makefile vs. Ant (9)
Cada vez que noto que algo en mi flujo de trabajo es una tarea repetitiva , intento automatizarlo.
Por ejemplo, los pasos necesarios para implementar algo en un servidor. A menudo es una compilación, seguida de un scp y finalmente algunas secuencias de comandos de configuración remota:
- paquete mvn
- servidor scp target / foobar.jar:
- ssh server install-foobar
- ssh server ''./bin/foobar restart''
Tiendo a escribir un pequeño Makefile en tales casos, que podría parecerse
deploy:
mvn package
scp target/foobar.jar server:
ssh server install-foobar
ssh server ''./bin/foobar restart''
¿Cómo automatizas tus flujos de trabajo?
¿Ant es la herramienta preferida? ¿Cuáles son los pros / contras?
Encuentro que Ant y su sintaxis de configuración XML son un poco difíciles de manejar y hay algunas cosas que deberían ser triviales pero que son muy difíciles de conseguir en Ant. Prefiero ese tipo de SCons de automatización.
Hay otra herramienta hecha para implementar cosas que utilicé por un tiempo y fue genial, pero olvidé su nombre, tal vez alguien más lo recuerda :).
Para el desarrollo de Java, diría que Ant es la opción predeterminada.
Pro:
- buena documentación,
- buena integración IDE
- Muchas extensiones y herramientas de terceros
Estafa:
- Un poco detallado (bueno, es aún otro formato XML)
- Algunas cosas que deberían ser simples no son (por ejemplo, cualquier tipo de bucle)
Realmente no tengo ninguna experiencia usando makefiles, así que no puedo decir cómo se comparan. Tal vez deberías simplemente usar lo que tus desarrolladores tienen más experiencia.
Rake es mi elección.
Yo uso scripts shell y perl
considere GAnt ( http://gant.codehaus.org/ ). utilizando el generador de Groovy, es mucho menos detallado que un script de construcción Ant
SCons es otra buena idea . Y Capistrano parece estar bien considerado, aunque no lo he intentado.
Yo uso scripts (shell, perl, python) o makefiles. No me gustan Ant y SCons
Para python tiendo a utilizar el tejido para los pasos de implementación y herramientas de configuración para cualquier edificio que se necesite (no es lo habitual para mí :-)
Fabric entiende cómo copiar archivos en servidores, ejecutando comandos en el servidor remoto (tanto como usuario estándar como root).
Una de las razones por las que la mayoría de los sistemas de compilación son tan complejos es porque la gente intenta y hace mucho en ellos. a veces complementando un sistema de compilación con un script de controlador que se encarga de las tareas de no compilación / vinculación es un buen camino a seguir. No hay una sola manera. Es difícil responder la pregunta sin ver la estructura del código fuente del proyecto y todas las tareas que se deben realizar. Pero es posible que desee echar un vistazo a Rake porque complementaría a Make, Ant y Maven.