2010-08-20 222 views
14

Me gustaría saber las razones por las que las personas usan o no Maven. Estamos a punto de cambiar todas nuestras construcciones a Maven 2 y no tenemos mucha experiencia con ella.¿Cuáles son las ventajas/desventajas de usar Maven?

¿Cuáles son las ventajas/desventajas de utilizar Maven 2, cosas como:

  • ¿Por qué se cambia a maven?
  • ¿Por qué arrojaste a maven y usaste algo más?
  • ¿Qué problema resolvió para usted?
  • ¿Qué problema causó para usted?

¡Gracias!

Respuesta

10

He utilizado maven en cada proyecto que he encontrado en los últimos 4 años, desde pequeños proyectos privados hasta grandes proyectos empresariales de docenas de módulos y nunca me he arrepentido de usar maven.

he construido algo de proyectos Java JAR/WAR/EAR estándar para flexionar aplicaciones/aire y RPM de Linux utilizando Maven, delegando en cualquiera Antrun o GMaven cuando no hay plugin de Maven estaba disponible para una situación dada.

El poder y la comodidad del ciclo de vida maven estándar combinados con la abundancia de complementos disponibles para la generación de código, documentación, métricas de código, etc., que suelen ser fáciles de usar, hacen que Maven sea la única opción real para los sistemas de compilación java.

Adelante, bash, pero hasta que inventes algo mejor, seguiré usándolo.

+0

Estoy totalmente de acuerdo. Con polyglot maven ya no necesitas usar xml, que en mi opinión es uno de los inconvenientes de maven. Para proyectos complejos, el pom rápidamente se vuelve muy grande. Por otro lado, si está usando un editor de pom como el proporcionado por m2eclipse, no tiene que tratarlo directamente para la mayoría de los casos de todos modos. Sin embargo, las reglas de polyglot maven :) –

1

Empecé con maven y me quedo con él. Cuando construyo un proyecto con maven, nunca tengo problemas con las bibliotecas que faltan, versiones de bibliotecas incorrectas, ... Se compila, se ejecuta.

La actualización de bibliotecas es simple (no como Ant).

Maven proporciona muchos complementos útiles. Uso maven para ejecutar pruebas de funcionalidad en hudson: descarga la versión más reciente de mi proyecto, inicia la base de datos incrustada, inyecta el conjunto de datos de dbunit, implementa la aplicación en embarcadero, ejecuta la prueba y muestra los resultados de las pruebas.

Una cosa que no me gusta es tener todo en un solo archivo. Entonces me gustaría especificar la configuración no solo usando XML.

4

La gran ventaja de usar Maven es su infraestructura de repositorio. Esto promueve protocolos estándar para el intercambio de bibliotecas de terceros y permite a los equipos colaborar de manera más efectiva sin verse obligados a verificar todo en el mismo repositorio de código fuente (compilaciones modulares).

administradores de repositorios están disponibles gratuitamente y se lo recomiendo la instalación de uno de los siguientes:

  • Nexus
  • Artifactory
  • Archiva

La buena noticia es que usted no está forzado a construir su código usando Maven para poder aprovechar los beneficios de tener una infraestructura Maven.

Recomiendo Maven para proyectos de "campo verde" sin un legado que defender. El inicio de un proyecto generalmente es el mejor momento para introducir una nueva tecnología y los beneficios de usar Maven están bien documentados. Las luces altas son un proceso de construcción estandarizado y una gran cantidad de complementos de terceros.

Los proyectos ANT se pueden rediseñar para que interactúen con los equipos que utilizan Maven. El complemento ivy, aplicado correctamente, en realidad puede simplificar el proceso de compilación ANT. Ivy es capaz de gestionar el classpath del proyecto descargando dependencias del repositorio de Maven y luego publicando los artefactos de compilación (como un "despliegue" de Maven).

Finalmente ivy se ha integrado en otras herramientas de compilación. Los ejemplos son nuevas herramientas de compilación como Gradle, simple-build-tool y sistemas de desarrollo como Grails. Así que adopte el uso de un repositorio de Enterprise Maven y elija la herramienta de compilación adecuada para el equipo del proyecto.

0

Estoy de acuerdo con Mark en que es genial para proyectos totalmente nuevos. Hay un poco de sobrecarga para ponerlo en funcionamiento en su entorno de desarrollo, pero vale la pena.

Podría agregar que un peligro potencial para usar Maven es que si está trabajando en un proyecto grande, puede ser difícil mantener los frascos en el repositorio. Puede terminar usando varias versiones diferentes de jar en su POM.xml.

Al igual que con cualquier proyecto, asegúrese de tener buenas políticas y procedimientos establecidos para incorporar diferentes Tarros a su código base. Estos archivos jar pueden tener diferentes licencias que pueden exponer su código base al mundo de código abierto. Asegúrese de que sus licencias sean revisadas por usted.

+0

Maven resolvió un problema específico que era hacer la gestión de la dependencia de manera efectiva cuando no había ninguna, o había una apariencia de Ivy. Personalmente para grandes programas de trabajo de múltiples proyectos, tarde o temprano, tendrá que mirar el POM_efectivo, y es allí donde descubro que Maven se vuelve inmanejable o difícil de administrar ... A MENOS que sea disciplinado desde el principio. Por eso Gradle para mí, desde esa perspectiva, es mucho más amigable para el usuario, no elimina a Maven por las fortalezas centrales de estos, y cuando se trata de complejidad es más manejable. Depende de ti sin embargo. – Beezer

6

¡Maven es fantástico!

no tengo tanto tiempo para lírico como me gustaría, pero aquí están mis mejores unos beneficios de Maven, en ningún orden en particular:

  • repetible construye: si se puede construir el proyecto , sus colegas siempre podrán hacerlo en sus máquinas. También será repetible en el servidor de compilación.
  • Estandarización del sistema de compilación: los nuevos desarrolladores que entienden Maven sabrán instantáneamente cómo compilar, lanzar, probar, etc., eliminando una gran cantidad de gastos generales de aprendizaje.
  • Enfoque en la automatización: Maven lo pone en una actitud de automatizar los procesos en torno al desarrollo de su software.
  • Convención sobre la configuración: no se requiere configuración o configuración mínima para construir artefactos.
  • Gestión de dependencias: Maven resolverá y gestionará sus dependencias por usted.
  • Prueba: la capacidad de ejecutar pruebas y pruebas de integración como parte del ciclo de vida de su proyecto.
  • Complementos: hay miles de complementos para llevar a cabo diversas tareas. Simplemente se configuran con solo agregar una referencia al POM.

En términos de desventajas, a menudo se dice que es mejor aceptar los convenios y las normas predeterminadas de Maven, e idealmente comenzar a usarlo al comienzo de un proyecto totalmente nuevo. Estoy de acuerdo con esto hasta cierto punto si quiere ahorrar tiempo configurando XML en su POM.

No soy realmente un fanático de las herramientas, pero al haber usado Make and Ant antes que Maven, realmente no puedo ver un solo inconveniente en la adopción de Maven. Es una herramienta de calidad y un ahorro de tiempo real.

4

Hasta ahora me gusta. Cuando uso maven, el tiempo de compilación para un proyecto aumenta drásticamente. Desde varios ms hasta un segundo en solo eclipse, hasta más de 30 segundos incluso para el proyecto maven más simple.

Dado que a mucha gente le gusta, debo estar haciendo algo mal, pero hasta ahora no puedo entender por qué se necesitan años para construir un proyecto basado en maven.

Cuestiones relacionadas