configuración predeterminada del comstackdor maven

En este momento, estoy escribiendo una pequeña aplicación java por mi cuenta, con algunos archivos maven pom.xml. Quiero hacer todos mis paquetes maven para comstackr con jdk 1.6, y no puedo encontrar una buena manera de hacerlo sin configurarlo manualmente en cada uno de los POMs. Estoy cansado de copiar y pegar

org.apache.maven.plugins maven-compiler-plugin  1.6 1.6  

en cada archivo pom.xml que genero

¿Hay alguna manera más simple de resolver este problema?

Cree un proyecto pom solo ( pom ) que tenga la configuración del comstackdor (y cualquier otra configuración predeterminada) que desee. Puede tratarlo como cualquier otro proyecto (libérelo, impleméntelo en su repository de Maven, etc.).

Ponga una statement parent en la parte superior de sus archivos pom:

      

No ayuda mucho si todo lo que quiere establecer es la configuración del comstackdor. Pero si se encuentra configurando muchos complementos, informes y dependencias de la misma manera en todo el proyecto, puede crear uno principal para gobernarlos a todos.

Por cierto: tenga cuidado al declarar dependencies y plugins en su archivo pom principal. Por lo general, querrás favorecer a dependencyManagement y pluginManagement . Ver la documentación para más detalles.

Puede especificar este complemento y configuración en su ~/.m2/settings.xml , que luego lo aplicará a todos los proyectos.

Sin embargo, esto tiene el inconveniente de hacer que sus proyectos ya no sean portátiles: intentar construir el mismo código con el mismo pom.xml fallará en otras máquinas que no tengan los mismos valores de settings.xml que usted.

Estoy harto de copiar y pegar

Sí, y debe usar la herencia POM para evitar esto y configurar el maven-compiler-plugin en el POM padre.

Otra opción sería usar la solución sugerida por @matt (y él identificó los pros y los contras del uso de settings.xml ).

En ambos casos, esta suele ser una configuración que me gusta comprobar usando maven-enforcer-plugin y su regla requireJavaVersion que se configuraría así:

  [...]    org.apache.maven.plugins maven-enforcer-plugin   enforce-versions  enforce     1.6         [...]  

Pero puede hacer más (como verificar la versión de maven). Muy útil.

Quiero hacer todos mis paquetes maven para comstackr con jdk 1.6

Si se trata de un proyecto de varios módulos, simplemente ponga estas configuraciones en POM de nivel superior bajo pluginManagement .

Si tiene muchos proyectos independientes solo copie y pegue esta configuración. Tenga cuidado con las soluciones “inteligentes” como configurar esto en algún lugar del mundo. Algún día querrás usar configuraciones de comstackdor diferentes para uno o dos de tus proyectos y la pesadilla comenzará 🙂

Recuerda…

Mantenga las cosas lo más simple posible, pero no más simple .