2012-05-13 8 views
5

Para plantear la pregunta de otra manera, ¿impone Gradle cierta estructura de directorios en el proyecto que gestiona?¿Puede Gradle manejar construcciones para proyectos heredados sin tener que reestructurar directorios?

Tengo un proyecto heredado en mi plato, y la tarea es facilitar su construcción y administración. Es una aplicación Java EE de múltiples módulos. Encontré (y tú también estarás seguro) que el proceso de compilación actual está completamente sesgado y es totalmente una pérdida de tiempo.

Creo que este es el momento de enderezar las cosas mediante la introducción de un sistema de administración de compilación, y la elección es entre Maven y Gradle.

La mayoría de los proyectos utilizan la estructura de directorios del proyecto eclipse. Varios otros utilizan un diseño de directorio diferente que hasta ahora no puedo encontrar la razón detrás. Usando Maven, esto será un obstáculo ya que necesitaremos reestructurar los directorios para cumplir con la convención de maven. Los directorios de reestructuración pueden ser un gran esfuerzo adicional, ya que también debemos resolverlos en el CVS.

Por lo tanto, la pregunta a Gradle.

Respuesta

1

Ambos pueden acomodar estructuras de directorio arbitrarias. OMI es más fácil en Gradle, y no vale la pena en Maven.

Dicho esto, me gusta tener una estructura de directorios impuesta, y en su mayor parte, me gusta la estructura de Maven. Es un problema en CVS debido a los problemas de manejo de directorios, pero a la larga, vale la pena moverse a una estructura consistente en todos los proyectos.

6

Gradle utiliza la convención sobre la configuración que le permite proporcionar información mínima para construir su proyecto si sigue el diseño del proyecto estándar. Una vez dicho todo sigue siendo configurable a través de un estilo declarativo:

sourceSets { 
main { 
    java { 
     srcDir 'src/java' 
    } 
    resources { 
     srcDir 'src/resources' 
    } 
} 

}

Debido a que tiene un lenguaje de programación real que puede hacer casi cualquier cosa.

+3

Tenga en cuenta que esto _adds_ directorios de origen en lugar de reemplazarlos. La sintaxis para reemplazar es 'srcDirs = ['src/java']' y 'srcDirs = ['src/resources']'. –

Cuestiones relacionadas