He sido un usuario por mucho tiempo del sistema de compilación Make, pero he decidido comenzar a aprender el sistema de compilación Maven. Si bien he leído la mayoría de los documentos en línea, ninguno parece darme las analogías que estoy buscando. Entiendo el ciclo de vida del sistema, pero no he visto una referencia para compilar dependencias de pasos. Por ejemplo, quiero generar una gramática JFlex como parte del paso del ciclo de vida de la compilación. Actualmente, no veo forma de convertir ese paso en un paso de fase de precompilación. La documentación parece estar limitada en esto. En general, el concepto de dependencias escalonadas parece estar incorporado en Maven y requiere un complemento para cualquier alteración. ¿Es este el caso? Qué me estoy perdiendo, porque actualmente el sistema de compilación Maven parece muy limitado en cuanto a cómo puede configurar los pasos de compilación.Moviéndome a Maven desde GNUMake
Respuesta
Puedes hacer cualquier cosa en Maven. Por lo general, tiene una forma predeterminada de hacer cada cosa, y luego puede enganchar y anular si desea hacer algo especial. A veces se necesita mucho Stack Overflowing y rascarse la cabeza para resolverlo.
Incluso hay un JFlex Maven plugin oficial.
Siempre que sea posible, busque a alguien que haya hecho un plugin de Maven que haga lo que quiera. Incluso si no es 100% correcto, al menos puede darte una idea sobre cómo hacer que Maven haga algo.
Configuración mínima
Esta configuración genera código Java de un programa de análisis de todos los archivos de gramática ( .jflex, .jlex *, * .lex, .flex) que se encuentra en src/main/JFlex/y sus subdirectorios. El nombre y el paquete del código fuente Java generado son los definidos en la gramática. El código fuente generado de Java se coloca en target/generated-source/jflex, en subdirectorios siguiendo la convención de Java sobre nombres de paquetes. pom.xml
<project>
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>de.jflex</groupId>
<artifactId>jflex-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- ... -->
</build>
<!-- ... -->
</project>
Esto se siente como la forma de hacer las cosas experto. Coloque sus cosas en las carpetas correctas (src/main/flex), y este complemento lo integrará automáticamente en su proyecto. Si quiere do fancier custom stuff, there are some options. pero Maven se trata de favorecer la convención sobre la configuración.
Para ser sincero, creo que su mentalidad actual se asigna mucho mejor a la hormiga que a maven, y sugiero que empiece con eso.
¿Eso significa que Maven no es capaz de agregar tareas de compilación adicionales para compilar? Supongo que podría poner los pasos de compilación en un archivo ant y tener mvn acaba de ejecutar eso. Sin embargo, esa solución parece un poco fea. – dcolish
Puedes hacer cualquier cosa en Maven. Responderá más en una nueva respuesta. – bwawok
No dije que maven no podría hacerlo. Dije que tu forma de pensar está más cerca de la hormiga (que proviene de la marca) que maven. –
- 1. Recursos para aprender GNUMake?
- 2. Heroku - ¿Puedo llamar a Maven desde Procfile?
- 3. Google Maps InfoBubble pixelOffset (Moviéndome desde la posición predeterminada arriba del marcador)
- 4. ejecutar servidor Java desde maven
- 5. Importación de múltiples proyectos maven desde git a eclipse
- 6. Cómo forzar un error en un archivo gnumake
- 7. Cómo establecer la variable GNUMAKE para que ndk-build funcione
- 8. Construcción en paralelo con gnumake y requisitos previos
- 9. Objetivo de Maven ejecutándose desde eclipse
- 10. Establecer propiedad maven desde el complemento
- 11. pase un parámetro de java desde maven
- 12. A Unicode Maven ArtifactId
- 13. ¿Cómo agregar JSTL a Maven?
- 14. Equivalente a Maven para python
- 15. Maven + GAE paso a paso
- 16. ¿Debo actualizar a Maven 3?
- 17. Activar un comando de instalación de maven desde otro comando de instalación de maven
- 18. Comprobando el proyecto de Maven desde SVN en Eclipse
- 19. ¿Cómo vincular la fuente desde fuera del proyecto maven?
- 20. ¿Cómo ejecutar un proyecto de Maven desde Eclipse?
- 21. Desde Eclipse, ¿cómo puedo ejecutar mi proyecto Maven en Tomcat?
- 22. Actualice una versión de proyecto de Maven desde el script
- 23. Pago y envío Proyecto de Maven desde SCM - sin conectores
- 24. Cómo ejecutar maven desde eclipse con el modificador -e
- 25. Verificando un proyecto maven desde un repositorio de git
- 26. ¿Cómo generar enum desde el archivo de propiedades en Maven?
- 27. Quiero ejecutar comandos de shell desde pom.xml de Maven
- 28. ¿Es posible pasar constantemente -Djava.library.path a una prueba maven desde dentro de un archivo POM?
- 29. Cómo denegar a maven utilizar proyectos abiertos en Eclipse en vez de jar desde el repositorio
- 30. ¿Cómo forzar a Maven a descargar maven-metadata.xml del repositorio central?
Oh bien, fue ese objetivo de ejecución lo que funcionó. Creo que tendré que regresar y ver exactamente qué hace eso. ¿Entonces el gancho para complementos está agregando una ejecución y se ejecuta durante el ciclo de vida? – dcolish
Evenrything en Maven es un complemento, incluso si no lo ves. Para querer hacer un cambio, el primer paso es tomar uno de los complementos incorporados y cambiar la configuración un poco ... Cuando los complementos integrados no hacen algo, puede ir a buscar con complementos de terceros. Si no tienes suerte, puedes hacer tu propia :) – bwawok