wake-up-neo.com

m2e Lifecycle-Mapping nicht gefunden

Ich versuche die Lösung zu verwenden hier beschrieben um die lästige "Plugin-Ausführung, die nicht von der Lifecycle-Konfiguration abgedeckt wird: org.codehaus.mojo: build-helper-maven-plugin: 1.7: add-source (Ausführung : default, phase: generate-sources) ", wenn ich das folgende Plugin in meine pom.xml platziere:

<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>

Aber wenn ich mvn clean install starte bekomme ich folgendes:

Grund: POM 'org.Eclipse.m2e: Lifecycle-Mapping' nicht im Repository gefunden: Das Artefakt kann nicht aus einem Repository heruntergeladen werden

Hat jemand eine Ahnung, wie man m2e und maven glücklich macht?

56

Das Plugin org.Eclipse.m2e:lifecycle-mapping Existiert momentan nicht. Es sollte aus dem Abschnitt <build><pluginManagement> Ihres pom.xml Verwendet werden. Auf diese Weise wird es nicht von Maven gelöst, sondern kann von m2e gelesen werden.

Eine praktischere Lösung für Ihr Problem wäre jedoch die Installation des m2e Build-Helper-Connectors in Eclipse. Sie können es von Window> Preferences> Maven> Discovery> Open Catalog Installieren. Auf diese Weise würde build-helper-maven-plugin:add-sources In Eclipse aufgerufen, ohne dass Sie Ihren pom.xml Ändern müssen.

110
Fred Bricon

Versuchen Sie es mit dem build/pluginManagement Abschnitt, z.B. :

<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>

Hier ist ein Beispiel zum Generieren eines Bundle-Manifests während der inkrementellen Kompilierung in 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 ist erforderlich, wenn m2e (ab 1.1.0) weggelassen wird, wird NullPointerException ausgelöst.

11
Hendy Irawan

Sie können dieses Dummy-Plugin verwenden:

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

Nach dem Generieren des Projekts installieren/implementieren Sie es.

9

So geht's: Ich habe das m2e Lifecycle-Mapping-Plugin in einem separaten Profil anstelle des Standardabschnitts <build> abgelegt. Das Profil wird während der Eclipse-Erstellung automatisch aktiviert, wenn eine m2e-Eigenschaft vorhanden ist (anstelle der manuellen Aktivierung in settings.xml oder auf andere Weise). Dies erledigt die m2e-Fälle, während der Kommandozeilen-Manager das Profil und das m2e-Lifecycle-Mapping-Plugin einfach ohne Warnung überspringt und alle zufrieden sind.

<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

Ich habe dafür bei m2e einen (trivialen) Bug aufgetan. Stimmen Sie ab, wenn die Warnmeldung endgültig verschwunden sein soll ...

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

3
Ben

Ich hatte das gleiche Problem, wo:

Es wurden keine Marktplatzeinträge gefunden, die mit dem Build-Helper-Maven-Plugin umgehen könnten: 1.8: Add-Source in Eclipse. Weitere Informationen finden Sie in der Hilfe.

wenn Sie auf die Schaltfläche Fenster> Einstellungen> Maven> Erkennung> Katalog öffnen klicken, wird keine Verbindung gemeldet.

Das Aktualisieren von 7u40 auf 7u45 unter Centos 6.4 und OSX behebt das Problem.

3
user145880

Maven versucht, das Lifecycle-Mapping-Artefakt von m2e herunterzuladen, mit dem M2E ermittelt, wie Plugins in Eclipse verarbeitet werden (Hinzufügen von Quellordnern usw.). Aus irgendeinem Grund kann dieses Artefakt nicht heruntergeladen werden. Haben Sie eine Internetverbindung? Können andere Artefakte aus Repositories heruntergeladen werden? Proxy-Einstellungen?

Wenn Sie weitere Informationen zu Maven wünschen, versuchen Sie, die M2E-Debug-Ausgabe zu aktivieren (Kontrollkästchen Einstellungen/Maven/Debug-Ausgabe). Möglicherweise erhalten Sie weitere Informationen dazu, warum das Herunterladen aus dem Repository nicht möglich ist.

1
prunge

m2e 1.7 führt eine neue Syntax für Lifecycle-Mapping-Metadaten ein, die diese Warnung nicht mehr verursacht:

<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>

Dies geschieht aufgrund einer fehlenden Plugin-Konfiguration (gemäß vaadins Demo pom.xml comment):

Die Konfiguration dieses Plugins wird nur zum Speichern von Eclipse m2e-Einstellungen verwendet. Es hat keinen Einfluss auf den Build des 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