Pongo a Maven en un clúster de código C/C++ amateur, mal escrito y francamente primitivo (es decir, algo de C, algo de C++). El problema es que actualmente hay mucho en circulación y no se puede reemplazar fácilmente. Construirlo requiere mucho conocimiento tribal (tienes que ir de cubo en cubo solo para descubrir cómo compilar/construir varias partes) y liberarlo es una pesadilla total. (No, no voy a reescribirlo, por favor no pregunte) Mi pregunta es: ¿Debería usar maven-native-plugin
para reemplazar multitud de makefiles cortos o usar exec-maven-plugin
para simplemente ejecutarlos? Tuve pretty good experience hasta ahora con este último haciendo .NET y no sé si debería invertir en el complemento native
o quedarme con exec
? Si tuvieras experiencia con "Mavenizing" C/C++, me gustaría obtener algunos consejos.Uso de Maven para proyectos de C/C++
Respuesta
Recomiendo encarecidamente el maven-nar-plugin. Encuentro superior en muchas formas a las alternativas. No requiere que se enumeren los archivos de origen, se manejen varios sistemas operativos y arquitecturas, se manejen las pruebas de unidad y de integración, y en general sigue "la ruta de maven". Introduce un nuevo tipo de paquete: el NAR, o "archivo nativo", que contiene el artefacto que le importa (.dll, .so, .a, .exe, etc.) pero también metadatos, encabezados, etc. en una camino que tiene sentido.
Requiere un poco de trabajo inicial para empaquetar software de terceros en NAR, pero es bastante sencillo. Una vez que están NARs, sólo tiene que utilizar el mecanismo normal de dependencia Maven para enlazar con ellos, por ejemplo:
<dependency>
<groupId>cppunit</groupId>
<artifactId>cppunit</artifactId>
<scope>test</scope>
</dependency>
Un inconveniente es que no parece ser mantenido de forma activa, pero es con todas las funciones y es una un ejemplo bastante impresionante de la creación de plugins Maven.
Gracias por el consejo - ¡Definitivamente lo comprobaré! – Bostone
Voy a aceptar esto como respuesta, esto de hecho parece ser superior a maven-native-plugin – Bostone
Buena suerte. Una cosa a tener en cuenta: esta mañana recibí una notificación (qué coincidencia) de que un error que envié hace un año se resolvió hoy: el mantenimiento parece haber reaccionado. – SingleShot
- 1. Usando Maven para proyectos R
- 2. Maven para proyectos web estáticos
- 3. Integración de proyectos Maven y no maven
- 4. Uso de Emacs para grandes proyectos grandes
- 5. Casos de uso para Clojure en proyectos
- 6. Maven - ¿Cómo construir varios proyectos Maven independiente de un proyecto
- 7. El uso de Maven para el despliegue
- 8. Organización de proyectos usando Maven + Git
- 9. Maven: proyectos de SCM y multimodulos
- 10. Detalles de call/cc
- 11. Uso de Maven para la distribución del proyecto
- 12. ¿Por qué algunos proyectos eligen la extensión para los archivos fuente .cc en C++?
- 13. ¿Es maven-native-plugin ampliamente utilizado para construir proyectos C++ utilizando maven?
- 14. construir proyectos C++ en Maven con maven-nar-plugin
- 15. Uso de Visual Studio para proyectos de código abierto (gestión de proyectos y cuestiones legales)
- 16. SoapUI Maven plugin: ejecuta varios proyectos
- 17. ¿Qué plugin maven uso para AspectJ?
- 18. Uso de EDE para manejar proyectos cmake/C++ en emacs
- 19. Uso del patrón de módulos para proyectos más grandes
- 20. Proyectos Eclipse + Maven + Git + Multi-Module = Infelicidad
- 21. Agregando proyectos de eclipse referenciados a dependencias de maven
- 22. Jerarquía de proyectos maven sin dispersar el número de versión
- 23. Uso de Maven para entornos de despliegue múltiple (producción/desarrollo)
- 24. Uso de Firebird en grandes proyectos
- 25. SLOC para proyectos Java
- 26. ¿Los proyectos de Maven pueden tener padres múltiples?
- 27. crear archivo jar de proyectos maven con netbeans
- 28. Cómo empaquetar proyectos maven de múltiples módulos con módulos anidados
- 29. Uso de Maven para crear una aplicación Java Web Start
- 30. Custom Maven Archetype o alternativas a la generación de proyectos
Estoy a punto de probarlo. Como veo, todavía se mantiene y se ha movido mientras tanto aquí: http://github.com/sonatype/maven-nar-plugin – espakm