Cómo eliminar el "maven-enforcer-plugin (objetivo "hacer cumplir") es ignorado por m2e " advertencia por eclipse?


Estoy configurando un proyecto maven hijo padre multi-módulo usando maven y eclipse m2e, estoy usando las últimas cosas de eclipse Juno SR1 que es m2e 1.2.0

El pom padre usa el plugin enforcer, así que el pom padre.xml tiene lo siguiente en su sección plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.1.1</version>
    <executions>

        <!-- Enforce that all versions of a transative dependency must converge. -->
        <execution>
            <id>enforce</id>
            <configuration>
                <rules>
                    <DependencyConvergence />
                </rules>
            </configuration>
            <goals>
                <goal>enforce</goal>
            </goals>
        </execution>

        <!-- Black list certain jars -->
        <execution>
            <id>enforce-banned-dependencies</id>
            <goals>
                <goal>enforce</goal>
            </goals>
            <configuration>
                <rules>
                    <bannedDependencies>
                        <excludes>
                            <exclude>
                                commons-logging:commons-logging
                            </exclude>
                        </excludes>
                    </bannedDependencies>
                </rules>
                <fail>true</fail>
            </configuration>
        </execution>

    </executions>
</plugin>

Cada uno de los proyectos secundarios tiene un mensaje de error que dice maven-enforcer-plugin (goal "enforce") is ignored by m2e.

  • ¿Cuál es el significado de este mensaje?
  • ¿Cómo configuro las cosas para deshacerse de este mensaje?
  • necesidad de configurar la configuración del proyecto eclipse o el pom.¿configuración xml?
Author: Gray, 2012-10-24

6 answers

El complemento eclipse maven ejecuta un proyecto pom.archivo xml con el fin de averiguar cómo se configura el proyecto maven y traducir el pom maven.configuración xml en una configuración eclipse. Un pom.xml puede hacer referencia a un número arbitrario de plugins maven y cada uno de esos plugins tiene el potencial de filtrar memoria, o hacer cosas que son perjudiciales para eclipse. Así que, por defecto, el complemento m2e eclipse ignora cualquier complemento maven a menos que esos complementos maven tengan un conector especial de complemento m2e que le diga a m2e cómo integrar el plugin maven en eclipse. En resumen, m2e está defendiendo el proceso eclipse JVM contra un plugin maven con errores, diciendo que para cada plugin maven debe haber un conector m2e para hacer un puente entre maven y eclipse.

Así que para deshacerme de la advertencia agregué lo siguiente a mi sección de administración de complementos del pom padre.xml

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
          <lifecycleMappingMetadata>
            <pluginExecutions>
              <pluginExecution>
                <pluginExecutionFilter>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-enforcer-plugin</artifactId>
                  <versionRange>[1.0.0,)</versionRange>
                  <goals>
                    <goal>enforce</goal>
                  </goals>
                </pluginExecutionFilter>
                <action>
                  <ignore />
                </action>
              </pluginExecution>
            </pluginExecutions>
          </lifecycleMappingMetadata>
        </configuration>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

Parece que org.eclipse.m2e:lifecycle-mappinges un complemento maven diseñado para contener metadatos para comunicarse con el complemento eclipse m2e cuando procesa un maven pom.xml y esta información se utiliza para decirle a eclipse qué hacer con los complementos maven que se definen en pom.xml cuando eclipse ejecuta el pom.xml como parte de la interfaz de usuario de eclipse.

 53
Author: ams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-04 10:31:22

Desde m2e versión 1.4 y superior: Puede integrar la configuración del ciclo de vida necesaria dentro del pom (padre-pom o proyecto-pom) o puede integrar la información en la configuración global de m2e dentro de eclipse. También tiene algunas acciones quickfix para aplicar estos cambios.

La última opción es buscar conectores m2e o cambiar a versiones más recientes de diferentes maven-plugins con soporte m2e integrado (por ejemplo, para jaxb-plugins).

Aquí (para enforcer-plugin) Creo que la definición en el pom es la forma más fácil.

Véase también: https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html

 4
Author: afischer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-18 14:22:13

Solo un FYI para aquellos de ustedes que tienen un problema con la configuración de su IDE en su modelo de compilación. Esté atento a esta solicitud de mejora actualmente dirigida para la versión de Kepler:

Error 350414: Almacene conectores m2e ignorados fuera del proyecto pom.xml https://bugs.eclipse.org/bugs/show_bug.cgi?id=350414

 2
Author: rmp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-20 18:40:47

Para mí fue un tema similar

Tenía maven 3.0.3 y java 1.5

Y mi pom tenía

<executions>
                    <execution>
                        <id>enforce-versions</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireMavenVersion>
                                    <version>[3.0.3,2.2.1,)</version>
                                </requireMavenVersion>
                                <requireJavaVersion>
                                    <version>[1.7, 1.8)</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

Como puedes ver, realmente no he cumplido con las reglas, por lo tanto, actualizé Java y obtuve mvn y estaba listo. Espero que esto ayude a alguien.

 0
Author: tosha Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-05 17:45:59

Existe otro escollo cuando se tienen varios pluginExecutionFilters. Estos deben estar en el lugar correcto en el pom.xml! Para mí fue retorcido encontrar que no existía ningún error o advertencia del desplazamiento.

Este es el código correcto para tener varios pluginExecutionFilters:

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.eclipse.m2e</groupId>
        <artifactId>lifecycle-mapping</artifactId>
        <version>1.0.0</version>
        <configuration>
        <lifecycleMappingMetadata>
            <pluginExecutions>
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <versionRange>[1.0.0,)</versionRange>
                        <goals>
                           <goal>enforce</goal>
                        </goals>
                    </pluginExecutionFilter>
                    <action><ignore/></action>
                </pluginExecution>
<!-- now here follows the new filter -->
                <pluginExecution>
                    <pluginExecutionFilter>
                        <groupId>com.googlecode.maven-java-formatter-plugin</groupId>
                        ...
 0
Author: smön,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-11 16:38:51

Cómo eliminar el "maven-enforcer-plugin (objetivo "hacer cumplir") es ignorado por m2e" advertencia por eclipse?

Aunque el complemento eclipse lifecycle-mapping ha funcionado para mí en otros proyectos, actualmente estoy trabajando en una tienda IntelliJ con mi Eclipse encubierto y no quiero exponerme cambiando todos sus archivos pom para incluir nada del grupo org.eclipse.m2e.

Después de un poco de experimentación, he encontrado que puede obtener esta advertencia para no aparecer cambiando el Asignaciones de ciclo de vida en las preferencias de Maven. Francamente no estoy 100% seguro de lo que esto está haciendo, pero no he visto ningún efecto secundario tan...

  1. En Eclipse, vaya a: Preferencias &rightarrow; Maven &rightarrow; Asignaciones de ciclo de vida.
  2. Haciendo clic en Open workspace lifecycle mappings metadata que abrirá el archivo lifecycle-mapping-metadata.xml en una pestaña en segundo plano. Asumo que este cooresponds al siguiente archivo bajo su subdirección de espacio de trabajo:

    .metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml
    
  3. Luego agregue la siguiente estrofa al final del archivo dentro de <pluginExecutions>...</pluginExecutions>.

    <pluginExecution>
        <pluginExecutionFilter>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <versionRange>[1.0.0,)</versionRange>
            <goals>
                <goal>enforce</goal>
            </goals>
        </pluginExecutionFilter>
        <action>
            <ignore />
        </action>
    </pluginExecution>
    
  4. Una vez que el archivo XML se guarda, tendrá que volver a la ventana de preferencias y pulse Reload workspace lifecycle mappings metadata que compila el archivo de alguna manera.

  5. Finalmente tendrá que hacer un proyecto de actualización maven en todos sus proyectos para ver que las advertencias desaparecen.

Espero que esto ayude.

 0
Author: Gray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-25 20:22:09