it-swarm.it

mappatura del ciclo di vita di m2e non trovata

Sto cercando di utilizzare la soluzione descritta qui per risolvere la fastidiosa "Esecuzione del plug-in non coperta dalla configurazione del ciclo di vita: org.codehaus.mojo: build-helper-maven-plugin: 1.7: add-source (esecuzione : default, phase: generate-sources) "quando inserisco il seguente plugin sul mio pom.xml:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
    <execution>
        <phase>generate-sources</phase>
        <goals><goal>add-source</goal></goals>
        <configuration>
            <sources>
                <source>src/bootstrap/Java</source>
            </sources>
        </configuration>
    </execution>
</executions>
</plugin>

Ma quando eseguo mvn clean install ottengo questo:

Motivo: POM 'org.Eclipse.m2e: mappatura del ciclo di vita' non trovato nel repository: impossibile scaricare l'artefatto da qualsiasi repository

Qualcuno ha idea di come rendere felici m2e e Maven?

56
TraderJoeChicago

Il org.Eclipse.m2e:lifecycle-mapping il plugin non esiste in realtà. Dovrebbe essere usato dal <build><pluginManagement> sezione del tuo pom.xml. In questo modo, non è stato risolto da Maven ma può essere letto da m2e.

Ma una soluzione più pratica al tuo problema sarebbe installare il connettore m2e build-helper in Eclipse. Puoi installarlo da Window> Preferences> Maven> Discovery> Open Catalog. Quel modo build-helper-maven-plugin:add-sources verrebbe chiamato in Eclipse senza che tu debba cambiare il tuo pom.xml.

110
Fred Bricon

Prova a utilizzare il build/pluginManagement sezione, ad es. :

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.Eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>org.bsc.maven</groupId>
                                <artifactId>maven-processor-plugin</artifactId>
                                <versionRange>[2.0.2,)</versionRange>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>                         
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

Ecco un esempio per generare manifest bundle durante la compilazione incrementale all'interno di Eclipse:

<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.felix</groupId>
                                    <artifactId>maven-bundle-plugin</artifactId>
                                    <versionRange>[1.0.0,)</versionRange>
                                    <goals>
                                        <goal>manifest</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.Apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>2.3.7</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                </instructions>
            </configuration>
            <executions>
                <execution>
                    <id>manifest</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>manifest</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

versionRange è richiesto, se omesso m2e (dalla 1.1.0) genererà NullPointerException.

11
Hendy Irawan

Puoi usare questo plugin fittizio:

mvn archetype:generate -DgroupId=org.Eclipse.m2e -DartifactId=lifecycle-mapping -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo

Dopo aver generato il progetto, installalo/distribuiscilo.

9

Ecco come lo faccio: ho inserito il plug-in di mappatura del ciclo di vita di m2e in un profilo separato anziché nella sezione <build> predefinita. il profilo viene attivato automaticamente durante le build di Eclipse per la presenza di una proprietà m2e (anziché l'attivazione manuale in settings.xml o in altro modo). questo gestirà i casi di m2e, mentre la riga di comando maven salterà semplicemente il profilo e il plug-in di mappatura del ciclo di vita di m2e senza alcun avvertimento, e tutti sono felici.

<project>
  ...
  <profiles>
    ...
    <profile>
      <id>m2e</id>
      <!-- This profile is only active when the property "m2e.version"
        is set, which is the case when building in Eclipse with m2e. -->
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.Eclipse.m2e</groupId>
              <artifactId>lifecycle-mapping</artifactId>
              <version>1.0.0</version>
              <configuration>
                <lifecycleMappingMetadata>
                  <pluginExecutions>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>...</groupId>
                        <artifactId>...</artifactId>
                        <versionRange>[0,)</versionRange>
                        <goals>
                          <goal>...</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>

                        <!-- either <ignore> XOR <execute>,
                          you must remove the other one. -->

                        <!-- execute: tells m2e to run the execution just like command-line maven.
                          from m2e's point of view, this is not recommended, because it is not
                          deterministic and may make your Eclipse unresponsive or behave strangely. -->
                        <execute>
                          <!-- runOnIncremental: tells m2e to run the plugin-execution
                            on each auto-build (true) or only on full-build (false). -->
                          <runOnIncremental>false</runOnIncremental>
                        </execute>

                        <!-- ignore: tells m2Eclipse to skip the execution. -->
                        <ignore />

                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    ...
  </profiles>
  ...
</project>
6
Robin479

Ho aperto un bug (banale) per questo su m2e. Vota per questo se vuoi che il messaggio di avviso scompaia per sempre ...

https://bugs.Eclipse.org/bugs/show_bug.cgi?id=36787

3
Ben

Stavo avendo lo stesso problema, in cui:

Nessuna voce di mercato trovata per gestire build-helper-maven-plugin: 1.8: add-source in Eclipse. Per ulteriori informazioni, consultare la Guida.

e facendo clic sul pulsante Finestra> Preferenze> Maven> Scoperta> apri catalogo non viene segnalato alcun collegamento.

L'aggiornamento da 7u40 a 7u45 su Centos 6.4 e OSX risolve il problema.

3
user145880

Maven sta cercando di scaricare l'artefatto di mappatura del ciclo di vita di m2e, che M2E utilizza per determinare come elaborare i plugin all'interno di Eclipse (aggiungendo cartelle di origine, ecc.). Per qualche motivo questo artefatto non può essere scaricato. Hai una connessione internet? Altri artefatti possono essere scaricati dai repository? Impostazioni proxy?

Per maggiori dettagli da Maven, prova ad attivare l'output di debug M2E (Impostazioni/Maven/Casella di controllo Debug Output) e potrebbe darti maggiori dettagli sul motivo per cui non può essere scaricato dal repository.

1
prunge

m2e 1.7 introduce un nuova sintassi per i metadati del mapping del ciclo di vita che non causa più questo avviso:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
    <execution>

        <!-- This executes the goal in Eclipse on project import.
             Other options like are available, eg ignore.  -->
        <?m2e execute?>

        <phase>generate-sources</phase>
        <goals><goal>add-source</goal></goals>
        <configuration>
            <sources>
                <source>src/bootstrap/Java</source>
            </sources>
        </configuration>
    </execution>
</executions>
</plugin>

Succede a causa di una configurazione del plug-in mancante (come da demo pom.xml di vaadin commento):

La configurazione di questo plugin viene utilizzata per memorizzare solo le impostazioni di Eclipse m2e. Non ha alcuna influenza sulla stessa build Maven.

<pluginManagement>
    <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e ettings only. It has no influence on the Maven build itself.-->
        <plugin>
            <groupId>org.Eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>com.vaadin</groupId>
                                <artifactId>
                                    vaadin-maven-plugin
                                </artifactId>
                                <versionRange>
                                    [7.1.5,)
                                </versionRange>
                                <goals>
                                    <goal>resources</goal>
                                    <goal>update-widgetset</goal>
                                    <goal>compile</goal>
                                    <goal>update-theme</goal>
                                    <goal>compile-theme</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <ignore></ignore>
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>
0
falsarella