Pregunta

Lo que necesitamos en nuestra firma es un tipo de herramienta de gestión de versiones para Linux / C ++. Nuestros productos consisten en varias bibliotecas y archivos de configuración. Aquí voy a enumerar las características básicas que queremos tal sistema tenga:

  • Capacidad de seguimiento de las dependencias, aumentar fácilmente versiones principales de las bibliotecas cuyas dependencias consiguió su versión principal aumentó. Se debe construir algún tipo de dependencia gráfico interno para que pueda saber quién está afectado por una actualización.

  • saber cómo construir los productos que manejan. O bien un fichero de construcción específica o incluso mejor -. Capacidad de leer y entender los archivos make

  • El trabajo con SVN para que pueda comprobar si hay nuevas versiones de allí y hace la construcción.

  • Generar algunos instaladores - en formato tar.gz rpm o. A tal efecto, debe ser capaz de entender el formato de archivo de especificaciones rpm.

Actualmente estamos trabajando en estas herramientas, que ya es bastante utilizable. Sin embargo, creo que nuestra tarea no es única y no debe haber alguna herramienta por ahí, que se encarga del trabajo.

¿Fue útil?

Solución

En el proyecto que estoy trabajando actualmente utilizamos cmake y otras herramientas Kitware para manejar la mayoría de estos problemas de código nativo (C ++). de contestar punto por punto:

  • Los guiones cmake manejan las dependencias de nuestros diferentes proyectos. Tenemos un gráfico de dependencias pero no sabemos si es un script hecho en casa o se trata de una funcionalidad que ofrece cmake.

  • Bien cmake genera los archivos make con respecto a la plataforma. I genera proyectos para CDT Eclipse y Visual Studio si se le pide que haga lo que en caso de desarrollar.

  • Cmake tiene un par de herramientas, ctest y cdash que utilizamos para hacer la acumulación diaria y ver cómo la prueba están haciendo.

  • Con el fin de crear el instalador tiene cmake cpack. De un solo script que puede generar tar.gz, deb o archivos rpm en Linux o un script NSIS generada automáticamente para generar instaladores de ventanas.

En el código Java que utilizamos Maven y Hudson que ya se han mencionado aquí.

Otros consejos

Se deberán tener en cuenta el uso de una mezcla entre Hudson, Maven (para la gestión de construcción), la hiedra (para la gestión de dependencias) y Archiva (por artefactos Archivo).

Además, si usted está buscando en cross.compilation, echar un vistazo a Make Project Creator (MPC) y Bakefile.

Diviértete !!

Tome un vistazo a este artículo de DDJ, en la que se presenta y se puso en práctica un concepto de sistema de construcción más robusta (que hacen). No estoy seguro de que se ajuste bien a sus necesidades, pero es el más cercano que he visto nunca. Yo estaba buscando lo mismo hace meses, y luego descubrí el artículo.

http://www.drdobbs.com/architect/218400678

Maven tiene un plugin de código nativo . No creo que va a hacer todo lo que desee, pero es bueno en el seguimiento números de versión de las dependencias, a construir artefactos y que va a trabajar con su VCS.

  • Ni idea
  • cmake / scons: Tengo cmake usada pero no lo sé exactamente encanta, pero he oído cosas muy buenas sobre scons. Pero scons es basado en Python, por lo que es necesario tener instalado en las máquinas de construcción / dev pitón.
  • Hudson , que tiene un plugin para obtenerlo desde SVN. Se lleva a cabo de forma inteligente en general, y en particular, se basa únicamente si algún archivo ha cambiado en una actualización de SVN. Hudson es fácil para empezar con. Hudson está basado en Java y es bastante popular entre la comunidad de Java. Esto significa que es bastante multiplataforma, pero es necesario tener JRE instalado en la máquina de construcción.
  • Probablemente puede llamar a alguna herramienta rpm dentro de Hudson.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top