Pregunta

¿cuál es el punto de utilizar hormiga, experto, y Buildr? No se construyen en el uso de Eclipse o NetBeans funcionan bien? Tengo curiosidad por lo que el propósito y beneficio de herramientas de construcción son extendidas.

¿Fue útil?

Solución

  • gestión de la dependencia : Las herramientas de construcción siguen un modelo de componentes que proporciona consejos sobre dónde buscar para las dependencias. En Eclipse / Netbeans, usted tiene que depender de un frasco y que no se sabe muy bien si esto JAR se ha actualizado o no. Con estas herramientas de construcción, que 'saber' actualizaciones en dependencias (por lo general debido a una buena integración con el repositorio de control de código fuente), vuelva a calcular las dependencias transitivas y asegurarse de que todo siempre está construido con las últimas versiones.

  • Control de acceso : Java, además de control de acceso a nivel de clase, no tiene mayor abstracción. Con éstos construyen herramientas que puede especificar exactamente qué proyectos desea dependerá de usted y controlar la visibilidad y el acceso a un mayor nivel de granularidad.

  • control personalizado : El Eclipse / Netbeans construir construye siempre archivos JAR. Con los mecanismos de generación personalizada, usted podría construir su propio archivo de encargo (internos de la empresa) con información de metadatos adicional, si así lo desea.

  • plugins : Hay una gran variedad de plugins que vienen con herramientas de construcción que se pueden hacer varias cosas durante la compilación. De algo básico como la generación de Javadocs a algo más no trivial como la realización de pruebas y obtener la cobertura de código, análisis estático, generación de informes, etc.

  • Transporte : Algunos sistemas de construcción también gestionan el transporte de archivos - de un sistema de desarrollo de un sistema de despliegue o de producción. Por lo tanto, puede configurar las rutas de transporte, horarios y demás.

Tome un vistazo a algunos servidores de integración continua como climatizador o Hudson . Además, el página de características de Maven ayuda a comprender mejor lo que quiere saber.

Otros consejos

En la parte superior de todas las otras respuestas. La razón principal guardo mis proyectos edificable sin verse obligados a utilizar NetBeans o Eclipse es que hace que sea mucho más fácil de instalar automatizado (y continua) construye.

Sería bastante complicado (en comparación) para configurar un servidor que de alguna manera se inicia el eclipse, actualiza la fuente desde el repositorio, construir todo, envía un correo electrónico con el resultado y las copias de la salida a algún lugar en un disco en el que el los últimos 50 compilaciones son almacenados.

Si usted es un desarrollador individual o de un grupo muy pequeño, puede parecer que un sistema de construcción es simplemente una sobrecarga. A medida que el número de desarrolladores aumenta aunque rápidamente se hace difícil realizar un seguimiento de todos los cambios y garantizar los desarrolladores mantienen en sincronía. Un sistema de construcción reduce el ritmo de aumento de los gastos generales como su equipo crece. Tenga en cuenta las cuestiones de la construcción de todo el código en Eclipse una vez que tenga más de 100 desarrolladores que trabajan en el proyecto.

Una de las razones de peso para tener un sistema de construcción por separado es asegurar que lo que se ha entregado a sus clientes se compila a partir de un versión específica del código registrado en su SMC . Esto elimina toda una clase de "obras en mi caja de" problemas y en mi opinión este beneficio es la pena el esfuerzo por sí misma en el tiempo de soporte reducida. Aislado construye (digamos en un CI ) también ponen de relieve los problemas en el desarrollo, por ejemplo, donde los cambios parciales o de ruptura se han cometido, por lo que tiene la oportunidad de ponerse problemas en forma temprana.

Una acumulación en un IDE construye cualquier cosa que esté en la caja, mientras que un sistema de construcción independiente producirá una acumulación reproducibles directamente desde el SMC. Por supuesto, esto podría hacerse dentro de un IDE, pero que yo sepa solamente invocando algo así como Ant o Maven para manejar todos los pasos de generación.

Entonces, por supuesto, también hay la beneficios directos de construcción Los sistemas. Un sistema de construcción modular reduce los problemas de copiar y pegar y maneja la resolución de dependencias y otros temas relacionados con construcción. Este debe permitir a los desarrolladores centrarse en la entrega de código. Por supuesto, cada nueva herramienta presenta sus propios problemas y la curva de aprendizaje puede hacer que parezca que un sistema de construcción es una sobrecarga innecesaria (sólo Google No me gusta Maven para hacerse una idea).

El problema con la construcción de la IDE, es que hay un montón de ajustes que afectan a la construcción. Cuando se utiliza una herramienta de construcción de todos los ajustes de un condensado en una forma más o menos legible en un pequeño conjunto de secuencias de comandos o archivos de configuración. Esto permite que cualquier persona en el caso ideal para ejecutar una construcción con casi cualquier configuración manual.

Sin la herramienta de construcción que podría llegar a ser casi imposible, incluso compilar el código en digamos un año, ya que tendrá hacer ingeniería inversa con todos los ajustes

Las diferentes características. Por ejemplo Maven puede escanear sus dependencias e ir descargarlos, y sus dependencias para que no tenga que hacerlo. Incluso para un proyecto de tamaño medio que puede haber un gran número de dependencias. No creo que Eclipse puede hacer eso.

@anonymous,

  • ¿Por qué supongo que yo, un miembro de su equipo, es utilizar un IDE toda la ¿hora? Yo podría querer construir el código en un servidor de compilación sin cabeza, es que OK?
  • ¿Quieres que también me negar el derecho de usando una integración continua ¿motor?
  • ¿Puedo ir a buscar dependencias desde un repositorio central por favor? ¿Cómo puedo hacer eso?
  • ¿Quieres que me atan a un IDE específico? No puedo ejecutar Eclipse fácilmente en mi muy viejo ordenador portátil, pero voy a comprar uno nuevo.

Tal vez también debería desinstalar la subversión y el uso de parches o simplemente comprimir carpetas en un SFTP / FTP / Samba acción.

Las herramientas de construcción le permiten hacer una composición automáticamente, sin que la invención humana, que es esencial si usted tiene una base de código poder construir muchas aplicaciones (como nosotros).

Queremos estar seguros de que todos y cada uno de nuestras aplicaciones puede construir correctamente después de cualquier cambio de base de código. La mejor manera de comprobar que es dejar que un ordenador lo haga de forma automática utilizando una herramienta de integración Continouos. Sólo el registro de código, y el servidor IC recoge que hay un cambio y reconstruye todos los módulos influenciados por ese cambio. Si algo se rompe la persona responsable es enviado por correo directamente.

Es muy útil ser capaz de automatizar cosas.

Para ampliar la respuesta de Jens Schauder, muchos de los que construyen opciones terminan en una especie de archivo .project. Uno de los males de Eclipse es que se almacenan los nombres de rutas absolutas en todos sus archivos de proyecto, por lo que no puede copiar un archivo de proyecto de una máquina a otra, lo que podría tener su espacio de trabajo en un directorio diferente.

La razón más fuerte para mí, se construye automatizado.

IDE solo funcionan en un nivel de abstracción más alto.

NetBeans nativly utiliza Ant como su herramienta de construcción subyacente y, recientemente, pueden los proyectos de Maven abrir directamente en NetBeans. Por lo tanto, el proyecto de NetBeans típicos puede ser compilado con hormigas y su proyecto Maven es ya un proyecto de NetBeans.

Al igual que con todos los GUI vs CLI discusión, IDE parece más fácil para los principiantes, pero una vez que la idea se vuelve engorroso para hacer cosas complejas.

Cambiar la configuración con un IDE significa hacer clic en algún lugar que es fácil para las cosas básicas, pero para la materia compleja que necesita para encontrar el lugar adecuado para hacer clic. Además entornos de desarrollo parecen ocultar la información importent. Al hacer clic en un botón para añadir una biblioteca es fácil, pero todavía no puede saber dónde está la biblioteca, etc.

Por el contrario, el uso de un CLI no es fácil para empezar, pero rápidamente se convierte en fácil. Permite hacer cosas complejas con mayor facilidad.

Uso de Ant o Maven significa que cada uno puede elegir su / su propio IDE para trabajar un código. Decirle a alguien para instalar el IDE para compilar X es mucho más sobrecarga de decirle "ejecutar en su concha". Y por supuesto su no puede explicar la antigua a una herramienta externa.

Para resumir, el IDE utiliza una herramienta de construcción en sí. En caso de NetBeans hormiga (o Maven) se utiliza para que pueda obtener todas las ventajas y desventajas de esos. Eclipse utiliza su propia cosa (por lo que yo sé), pero también se puede integrar scripts Ant.

En cuanto a las herramientas de construcción Maven sí es significativamente diferente de hormiga. Se puede descargar dependencias especificadas hasta el punto de descarga de un servidor web para ejecutar el proyecto.

En todos los proyectos, los desarrolladores a menudo se invocan manualmente la construcción process.but que no es adecuado para grandes proyectos, donde es muy difícil hacer un seguimiento de lo que debe ser construida, en qué secuencia y qué dependencias que hay en el edificio process.Hence Utilizamos herramientas de generación para nuestros proyectos.
Construir Herramientas variedades hechas de la tarea en la aplicación que lo haga por el desarrollador en su vida diaria.
Son
1.Downloading dependencias.
2.Compiling código fuente a código binario.
3.Packaging ese código binario.
4.Running pruebas.
5.Deployment a los sistemas de producción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top