2008-12-22 13 views

Respuesta

5

Si bien me gusta la idea de Maven, siempre me encuentro peleando por cualquier cosa menos las configuraciones más simples. Su arquitectura está basada en un complemento, y la calidad de los complementos varía ampliamente. La documentación es incompleta en el mejor de los casos; la mitad del tiempo no puedo entender si el documento que estoy leyendo es para Maven 1 o 2. ¿Y con qué frecuencia ha tenido que recurrir al uso del maven-ant-plugin para hacer algo básico?

He estado usando Apache Ivy durante aproximadamente un año, y estoy muy contento con él. Sin embargo, hay un poco de una curva de aprendizaje. Pero hay una lista de correo activa, y el autor es muy receptivo.

Lo que terminé haciendo fue escribir una "biblioteca" de unos pocos objetivos Ant simples como "resolver", "compilar", "instalar", etc. que esperan cosas en lugares Maven estándar (como src/main/java) y luego <import> los objetivos en mis diversos proyectos. De esta forma, obtienes lo mejor de ambos mundos: configuración estilo Maven y todo el poder de Ant.

4

Me gusta usar Ant con Ivy. Ivy usa los repositorios de Maven para buscar dependencias de la biblioteca sin forzarle a cambiar todo el sistema de compilación para adaptarlo a Maven.

3

He estado usando buildr para algunos de mis proyectos. Scripts de compilación muy sencillos y legibles (sin xml) y utiliza repositorio maven (con esfuerzo trivial, maven 1 y maven 2).

Estaba buscando algo post-maven1 para trabajar en algunos proyectos y m2 no era tan atractivo. Maven ya había dejado a todos los usuarios de m1 en alto y seco con la necesidad de rehacer todos sus sistemas de construcción (y algunos de los míos no pueden expresarse en m2, por lo que puedo ver).

+0

El único camino a seguir, XML (Ant) no es apropiado para las tareas que queremos hacer. Es sorprendente cuánto tiempo la comunidad necesita entenderlo. – Denis

0

Me gustaría ir con buildr, si estoy esperando objetivos de compilación complejos en mi compilación. El beneficio es que no dependes de ninguna biblioteca en particular. Tienes todas las API de Ruby para hacer lo que quieras; a diferencia de Ivy, en cuyo caso todavía estás atada a ANT. El esfuerzo de migración a Ivy vale si desea introducir la dependencia de la biblioteca en un mecanismo de creación basado en ANT ya establecido que hace todas las operaciones que desea hacer.

0

Hay al menos tres partes diferentes de Maven: el repositorio, la implementación lifecyle independiente y las convenciones para un proyecto predeterminado. Usar Ivy proporciona solo el repositorio.

No lo he usado, pero creo que easyant está diseñado para ser un reemplazo más completo de Maven. Utiliza Ivy como repositorio pero luego agrega convenciones y módulos estándar.

+0

He encontrado que EasyAnt es intrigante, pero su documentación no es tan buena. Debería decir que apunta principalmente a Java y cómo se compara con Ant y Maven, que son los mayores jugadores actuales en Java. – Wernight

1

Me gusta mucho usar ant4eclipse: configura las dependencias de proyecto en eclipse de forma normal y puede escribir un solo script de ant que construirá todos los proyectos en el orden correcto.

Para libs de terceros, puede configurar un solo proyecto de eclipse que contenga (y exporte) todos sus jar [NO RECOMIENDO ESTO], o un proyecto separado para cada lib de terceros, exportando el lib tarro. [Recomiendo este último b/c puede rastrear project-> deps de terceros y actualizar partes cuando sea necesario.]

8

Depende de lo que use de todos modos. Maven 1? Maven 2? Encuentro Maven 2 decentemente documentado, y bastante poderoso, cuando se usa en combinación con tareas Ant y algunos complementos de Java caseros.

Existen tareas Ant para usar las características Maven de Ant: http://maven.apache.org/ant-tasks/index.html. Entonces realmente no necesitas escribir tu propia "biblioteca".

Y puede llamar a Ant de Maven: http://maven.apache.org/plugins/maven-antrun-plugin/.

También puede crear secuencias de comandos utilizando Groovy, por ejemplo: http://groovy.codehaus.org/GMaven+-+Executing+Groovy+Code.

O simplemente escriba el código de Java para los bits personalizados que necesita: http://maven.apache.org/guides/plugin/guide-java-plugin-development.html.

No hay razón para no mezclar y combinar, cuando puede hacerlo;)

+0

(se agregó un comentario para que pueda recordar esta respuesta) +1 – toolkit