18 votos

¿Por qué elegir Buckminster más de Maven?

He estado usando Maven para varios meses y estoy muy a gusto con cómo funciona conceptualmente y en la práctica.

También he mirado Buckminster bastante extensa (pero no han llegado a la ejecución de ejemplos sin embargo, para intentar averiguar qué es y cómo se compara. La documentación es escasa. Por ejemplo, el uso de la terminología como la construcción de Automatizar e Implementar, pero aún no he visto nada acerca de la implementación. La puesta en escena-la migración es otro de los sugeridos pero no discutido tema.

Ambos Maven y Buckminster le dan la capacidad para especificar las dependencias y en general gestionar la construcción, prueba y posiblemente implementar los procesos.

Ambos tienen integración con eclipse y en caso de que ambos (teniendo sólo se utiliza Maven) trivializar la instalación y el intercambio de eclipse basadas en proyectos y sus dependencias.

Las principales diferencias que puedo ver son:

  • Dependencias:

    • Buckminster puede especificar las dependencias que viven en los repositorios de origen y el tipo de repositorio, además de ser capaz de hacer referencia a los repositorios de Maven para las dependencias.
    • Buckminster puede grupo de dependencias en virtual distros, y es también la plataforma de conocimiento. La agrupación de software, ciertamente, parece posible en Maven con pompones que hacen referencia a otras dependecies y el grupo de ellos.
  • Construir

    • Maven utiliza implícito un sistema de construcción basado en el diseño. Es muy fácil crear un proyecto, poner las cosas donde se espera a ser y tener maven construir, probar y crear frascos. Al mismo tiempo, está implícito también pueden ser restrictivas. Usted tiene que vivir con cómo Maven hace las cosas.
    • Buckminster - no está claro para mí cómo Buckminster decide qué construir y cómo se construye. Parece que este iba a alinear con el eclipse proceso para hacer el mismo. Buckminster también permite el uso de hormiga, pero no está claro si este es un requisito. Al menos, el ciclo de vida es menor (onu?) definido para bien o para mal, lo que permite más flexibilidad.
    • Ambas herramientas permiten sin cabeza que se construye, a pesar de buckminster puede llevar un poco más de equipaje junto con él.
  • Plugins

    • Maven tiene un muy amplio conjunto de plugins para todas las fases del ciclo de vida para muchos tipos diferentes de automatización, desde la generación de código a la ejecución de los servicios integrados para la prueba.
    • Buckminster no parecen tener el mismo concepto de plugins. Hay lectores y actores, pero no parecen jugar el mismo papel. Buckminster deben tener acceso a la amplia gama de plugins disponibles para la hormiga. No está claro qué tan bien hormiga acciones puede ser perfectamente integrado con el resto de Buckminster procesos (este también es un problema para el maven hormiga plugin).
  • La implementación de

    • Maven tiene una serie de plugins para la generación de distribuciones de software (asambleas) y moverlos (vagones). ¿Buckminster conseguir todo esto de la Hormiga?
  • La complejidad

    • Los diferentes esquemas de Buckminster puede ser bastante complejo, entre CPECs RMAPs MSPECs, etc.
    • Maven es un poco más sencilla la configuración de sabios, aunque puede complicarse con grandes y multi-módulo de proyectos. Maven también ha Arquetipos que facilita la creación de nuevos proyectos.
  • Documentación

    • Ambos están mal. ;-)
    • Buckminster es muy superficial, documentación sabio. No bastan los ejemplos están disponibles.
    • Plugins de Maven, tienden a tener muy buenos documentación, lo que es difícil lograr que se ejecute correctamente.

Desde mi punto de vista, la mayoría de lo que me gustaría hacer con Buckminster que puedo hacer con Maven. "Materialización" de control de versiones es un plus, pero los desarrolladores dentro de una organización puede publicar maven instantáneas a un repositorio para compartir el uno con el otro, además de proporcionar fijo versiones.

Parece que hay más flexibilidad y libertad de las constricciones del ciclo de vida de Maven (nunca quería añadir otra fase, como el post-test para la limpieza? Tengo que esperar a hacerlo en el núcleo).

Lo que me estoy perdiendo? Hay una gran cantidad de funcionalidad en Buckminster que vale la pena el paso en complejidad?

Hay salvajemente errado declaraciones anteriores (dado que no soy un Buckminster usuario y sólo un bajo-medio nivel de Maven de usuario)?

8voto

Thomas Hallgren Puntos 91

Algunas aclaraciones.

  • Las dependencias

    Buckminster no tiene un repositorio tipo de su propio. Tiene un mecanismo de descubrimiento que se traduce existente meta-datos tales como Maven POM en un modelo que pueda ser entendido por Buckminster. Este meta-datos pueden ser añadidos verbatim como un archivo XML si no se puede obtener de ninguna otra forma.

  • Construir

    Buckminster decide qué construir de la misma manera que el IDE de Eclipse. Además de los que se extrae la información conocida de los artefactos tales como el manifiesto, construir.propiedades, plugin.xml etc. y lo traduce en acciones en el modelo, que puede ser explícitamente dispara usando el Buckminster llevar a cabo el comando.

    No estoy en absoluto convencido de que Buckminster lleva más equipaje sin cabeza que se construye. De hecho, creo que lo contrario es más común. Edificio con Maven en un vacío de la máquina a menudo comienza con una descarga de un número muy grande de componentes, incluso si la tarea en cuestión es trivial.

  • Plugins

    Buckminster está basado en OSGi y extendido el uso de Eclipse puntos de Extensión. Es posible añadir nuevos tipos de repositorios, los nuevos tipos de acciones, nuevos mecanismos de descubrimiento, y más el uso de este mecanismo.

  • La complejidad

    Un mínimo de Buckminster de configuración sólo se necesita una CQUERY y un RMAP. Con ellos, es posible construir un completo p2 sitio de actualización de tamaño arbitrario, que es firmado y procesados con el pack200. Los archivos No necesita ser añadido a cualquier de las características y paquetes. Nada necesita ser "Buckminsterized". Así que no estoy seguro de que estoy de acuerdo en que Maven es más fácil de configurar.

Aparte de los beneficios ya mencionados por Roland y Zoltán, me gustaría añadir que desde el buckminster construcción de un verdadero espacio de trabajo de construir, va a aprovechar todos los constructores que han sido declaradas en la .archivo de proyecto. Aquí están algunos ejemplos:

  • PDE Manifiesto builder genera advertencias y los errores de los manifiestos, la propiedad de los archivos, etc.
  • PDE Esquema del generador (lo mismo para la Extensión de punto de esquemas)
  • Todos los otros constructores de hecho para el Eclipse de la estructura. Esto incluye la validación de esquemas XML constructores, Java Script constructores, y muchos otros.
Estoy seguro de que Maven tiene correspondencia para una mayoría de ellos. El punto con Buckminster es que usted no necesita para mantener un extra de sistema de construcción. Lo que funciona en el IDE de área de trabajo, también funciona headlessly.

7voto

Henrik Lindberg Puntos 459

Hay un Buckminster Libro en PDF disponible desde el Buckminster página de Descarga de más de 250 páginas de documentación e incluye tanto a la introducción y detallada documentación de referencia.

Descargar de aquí: http://www.eclipse.org/downloads/download.php?file=/tools/buckminster/doc/BuckyBook.pdf

6voto

Ben Hardy Puntos 951

Maven se utiliza de manera implícita en el sistema de compilación basado en el diseño. Es muy fácil crear un proyecto, poner las cosas donde se espera a ser y tener maven construir, probar y crear frascos. En al mismo tiempo, está implícito también puede ser restrictivas. Usted tiene que vivir con cómo Maven hace las cosas.

En realidad, puede especificar explícitamente donde poner las cosas en Maven. Las ubicaciones predeterminadas son sólo eso, por defecto, fácil de reemplazar, aunque raras veces hay una buena razón para hacerlo.

Buckminster - no está claro para mí cómo Buckminster decide qué construir y cómo se construye. Parece que esto se alinean con el eclipse proceso para hacer el mismo. Buckminster también permite el uso de hormiga, pero no está claro si esto es un requisito. Al menos, el ciclo de vida es menor (onu?) definido para bueno o malo, lo que permite más flexibilidad.

Creo que Maven tiende a seguir la filosofía de los valores predeterminados de sensato que son fácilmente lo anuló.

Maven es un poco más sencilla configuración de sabios, aunque puede obtener complejo con grandes y multi-módulo de proyectos. Maven también ha Los arquetipos que facilita la creación de nuevos proyectos.

Maven de la verdadera fuerza está en su gestión de las dependencias y este tiende a brillar especialmente en proyectos complejos con varios subproyectos. Es bastante fácil de definir una jerarquía de subproyectos y tienen sólo el trabajo.

Documentación: ambas son malas. ;-)

No se puede estar en desacuerdo con eso!

5voto

Zoltán Ujhelyi Puntos 9628

La mayor ventaja de la utilización de Buckminster es al compilar paquetes OSGi o plug-ins de Eclipse, ya que se puede reutilizar el PDE en la construcción de infraestructura, que se encarga de todo tipo de información de control de versiones que ya están presentes en el manifest.mf/plugin.xml los archivos. Cuando se utiliza Maven, esta información tiene que ser duplicado (AFAIK). Si usted no desarrollar plug-ins de Eclipse, y ya están familiarizados con Maven, entonces Buckminster se ofrecen ninguna ventaja real, sobre todo teniendo en cuenta la curva de aprendizaje empinada. Por otra parte, para la construcción de plug-ins de Eclipse ofrece la mejor ot-de-la-caja de soporte.

Puede ampliar Buckminster mediante la escritura de nuevos lectores (para obtener la fuente de otros lugares) o nuevos actores (que proporcionan los pasos de compilación - estos actores pueden reutilizar Maven o Ant, proporcionando así una funcionalidad extra).

3voto

cuh Puntos 1534

Me pregunto por qué nadie menciona Tycho. Tycho se ha propuesto como Proyecto de Eclipse y ahora en la Incubación de Fase.

Traté de conseguir junto con Buckminster pero ahora voy a echar un vistazo a Tycho. Esto tiene las siguientes razones:

  • Como se menciona en la documentación de buckminster es realmente malo.
  • En realidad nunca tuve uno de los buckminster ejemplos de ejecución.
  • Sé Maven y la documentación en mi humilde opinión es mejor que buckminster.
  • Quiero usar un servidor de compilación (Jenkins) y la integración de Maven es bastante buena.

Yo no tengo experiencia en el momento con Tycho, pero parece prometedor.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X