Ahora mismo, estoy escribiendo una pequeña aplicación java por mi cuenta, con unos maven pom.xml los archivos. Quiero hacer toda mi maven paquetes para compilar con jdk 1.6, y no puedo encontrar una buena manera de hacerlo sin necesidad de configurar manualmente en cada uno de los Pdm – estoy harto de copiar-y-pegar

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
 <source>1.6</source>
 <target>1.6</target>
</configuration>

en cada uno de los pom.xml archivo de genero.

Hay una forma más simple para resolver este problema?

InformationsquelleAutor Jeeyoung Kim | 2010-03-28

4 Comentarios

  1. 16

    Crear un pom-sólo (<packaging>pom</packaging>) proyecto que tiene el compilador de configuración (y cualquier otra configuración predeterminada) que usted desea. Dar tratarlo como a cualquier otro proyecto (suéltelo; instalarla en su Maven repo, etc.).

    Poner un parent declaración en la parte superior de su pom archivos:

    <parent>
      <groupId><!-- parent's group id --></groupId>
      <artifactId><!-- parent's artifact id --></artifactId>
      <version><!-- parent's version --></version>
    </parent>

    No ayuda mucho si todo lo que quiero establecer es compilador de la configuración. Pero si usted se encuentra la configuración de una gran cantidad de plugins, los informes y las dependencias de la misma manera en todo el proyecto, puede crear uno de los padres para gobernarlos a todos.

    Por CIERTO, – ser cuidadoso acerca de la declaración de dependencies y plugins en su padre pom archivo. Por lo general, usted querrá favor dependencyManagement y pluginManagement. Ver el documentación para obtener más detalles.

    • Hasta ahora, la única solución que pude encontrar para irritante eclipse m2e comportamiento. Incluso después de 5 años desde esta publicación. Puede ser que me haya perdido algo en eclipse (marte)?
  2. 8

    Puede especificar este plugin de configuración y en su ~/.m2/settings.xml, que se aplicarán a todos los proyectos.

    Sin embargo, esto tiene la desventaja de hacer que tus proyectos ya no portátil – intentar generar el mismo código con el mismo pom.xml fallará en otros equipos que no tienen la misma settings.xml valores como usted.

    • La maven de referencia para la settings.xml no mostrar un camino para configurar los plugins (maven.apache.org/settings.html). Me estoy perdiendo algo? Además, ya tengo bits de entradas en el settings.xml archivo (como «proyecto.construir.sourceEncoding» propiedad adicional y no estándar de los repositorios, así que no es un problema para mí para añadir más cosas a settings.xml.
    • Usted puede configurar un perfil (con la activa por defecto), donde el javac plugin tiene este valor. No aparece o se menciona en que la configuración de la página, pero es compatible. Ver la configuración global, en m2_home/conf/settings.xml de referencia (también se puede especificar la configuración de aquí también)
  3. 5

    Estoy harto de copiar-y-pegar

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

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

    En ambos casos, esto es típicamente un valor que me gusta comprobar la utilización de la maven-ejecutor-plugin y su requireJavaVersion regla que tendría que configurar como este:

    <project>
      [...]
      <build>
       <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-versions</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <version>1.6</version>
                    </requireJavaVersion>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>

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

  4. 3

    Quiero hacer toda mi maven paquetes para compilar con jdk 1.6

    Si este es multi-módulo de proyecto que acabo de poner esta configuración de nivel superior POM bajo pluginManagement.

    Si usted tiene muchos proyectos independientes sólo copiar y pegar esta configuración. Tenga cuidado con la «smart» soluciones como el ajuste de este lugar a nivel mundial. Algún día, usted querrá utilizar diferentes configuraciones de compilador para uno o dos de sus proyectos y la pesadilla comenzará 🙂

    Recordar…

    Mantener las cosas tan simples como sea posible, pero no simple.

Dejar respuesta

Please enter your comment!
Please enter your name here