2011-05-13 13 views
6

Ya conozco y uso Ant & Maven, en este punto me gustaría extenderme a otra herramienta y estoy decidiendo entre 'Buildr' y 'Gradle'. Agradecería información/comentarios de aquellos que han utilizado una o ambas de estas herramientas, porque francamente en este punto la única diferencia real para mí parece ser Ruby vs Groovy (y me siento cómodo y disfruto de ambos). También agradecería las respuestas a lo siguiente:Ayuda para evaluar herramientas de compilación

  1. Entiendo que Buildr permite descargar y extraer dependencias que NO están en un repositorio tipo maven, ¿ofrece Gradle la misma función?
  2. ¿Se puede usar Buildr/Gradle para construir otro código fuente en otro idioma, por ejemplo, groovy, ruby, actionscript/flex, c family, etc.?
  3. ¿Qué tan bien integrados están Buildr/Gradle con Hudson o Jenkins?

Respuesta

6

que vienen desde el lado Gradle, así que aquí están algunos puntos a tener en cuenta ...

  1. Gradle es construir en la parte superior del ANT + Ivy. Puede manejar repos de tipo maven e ivy. Excelente lectura acerca de cómo se pueden encontrar las dependencias de manejadores de gradle here.
  2. Gradle maneja java, groovy, scala, etc ... Puede encontrar una lista de complementos estándar here. Como Gradle está construido sobre ANT, puede usar tareas ant para lograr la construcción flexible. Básicamente, puedes hacer todo lo posible con Gradle con ANT. Puede convertir su anterior ANT XML a Gradle O puede importar un script ANT directamente y usar los objetivos como tareas en Gradle. En lo que respecta a C, existen mejores herramientas de compilación para manejar eso. Encontré this thread que podría interesarle.
  3. Gradle tiene un plugin de Jenkins. Sin embargo, Gradle tiene una bonita función llamada envoltorio gradle que usan las versiones más maduras. Si usa esta característica, no necesita preocuparse por tener este complemento. Más sobre el contenedor here.

No sé mucho sobre Buildr, así que no puedo comparar, lo único que puedo decir es que somos usuarios felices de gradle.

+0

Gracias por la explicación en profundidad y los enlaces; fueron muy útiles. Sin embargo, tengo una pregunta de seguimiento: ¿puede Gradle manejar el lenguaje Ruby/jruby? Desde el sitio de Gradle parece que no. – tendans6

+0

@ tendans6: Ruby se interpreta así que no hay necesidad de compilación. Supongo que puede usar la tarea de Gradle's Exec (http://www.gradle.org/latest/docs/dsl/org.gradle.api.tasks.Exec.html) para ejecutar los scripts de Ruby desde la línea de comandos. Nunca lo intenté antes sin embargo ... Tampoco estoy seguro acerca de JRuby. Necesita un compilador que traduzca la fuente jruby al código de byte java. Tal vez con Ant ...? –

+1

Tiene razón, uno puede ejecutar scripts desde la tarea ejecutiva de Gradle, además (y en lo que a mí me ha interesado) parece que se puede usar Gradle para empaquetar scripts de Ruby. Del mismo modo, parece que uno puede usar las tareas tipo hormiga de Gradle para compilar scripts JRuby (a través de jrubyc). Aprecio la información y los enlaces directos. – tendans6

4

Evaluamos recientemente Gradle, Buildr y Maven 2 como alternativas a nuestra mezcla actual de Ant y envolturas de hormigas locales y terminamos por establecernos en Gradle. Técnicamente hablando, ellos (Buildr y Gradle) pareció ser muy similares y las razones de nuestra decisión terminó siendo no técnica:

  1. Gradle = = maravilloso Java! Si tienes un equipo de desarrolladores de Java, el argumento para poder expresar la lógica de compilación en un lenguaje al que cualquiera puede contribuir es difícil de superar ... lo cual no es un juicio sobre Ruby, solo una consideración de qué recursos de desarrollo hay disponibles. Groovy Closures requiere algo de tiempo para acostumbrarse, pero me ha resultado muy divertido de aprender.

  2. Soporte comercial: esto puede o no ser importante para su caso, pero en el nuestro fue un factor determinante. Gradle es compatible comercialmente con Gradleware

  3. Adopción/popularidad del usuario (mainstreamness) - para los problemas que nos encontramos, era más fácil encontrar respuestas a las preguntas sobre Gradle que Buildr.

Dicho esto ... Todavía estoy bastante seguro de que cualquiera habría apoyado nuestras construcciones de proyectos múltiples.Maven 2 hubiera sido aceptable si empezáramos desde cero, pero tenemos muchas peculiaridades y estructuras de proyecto extrañas para gestionar, lo que dificulta la productividad desde el primer día ... los requisitos de transición hicieron que Maven 2 fuera prohibitivamente caro.

Espero que ayude y buena suerte!

Cuestiones relacionadas