M2E lifecycle-mapping non trouvé
j'essaie d'utiliser la solution décrite ici pour résoudre l'ennuyeuse" exécution de Plugin non couverte par la configuration lifecycle: org.codehaus.mojo: build-helper-maven-plugin:1.7:add-source (execution: default, phase: generate-sources)" quand je place le plugin suivant sur mon 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>
mais quand j'exécute mvn clean install je reçois ceci:
raison: POM ' org.Eclipse.m2e:cycle de vie-cartographie " ne trouve pas dans dépôt: impossible de télécharger l'artefact depuis n'importe quel dépôt
est-ce que quelqu'un sait comment rendre M2E et maven heureux?
9 réponses
le plugin org.eclipse.m2e:lifecycle-mapping
n'existe pas réellement. Il doit être utilisé à partir de la section <build><pluginManagement>
de votre pom.xml
. De cette façon, ce n'est pas résolu par Maven mais peut être lu par m2e.
mais une solution plus pratique à votre problème serait d'installer le connecteur build-helper m2e dans eclipse. Vous pouvez l'installer à partir de la Window
> Preferences
> Maven
> Discovery
> Open Catalog
. De cette façon build-helper-maven-plugin:add-sources
serait appelé dans eclipse sans que vous changiez votre pom.xml
.
essayez d'utiliser la section build/pluginManagement
, par exemple:
<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>
voici un exemple pour générer un manifeste de faisceau pendant la compilation incrémentale à L'intérieur D'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 est nécessaire, si omise m2e (à partir de 1.1.0) lancera NullPointerException.
vous pouvez utiliser ce plugin factice:
mvn archetype:generate -DgroupId=org.eclipse.m2e -DartifactId=lifecycle-mapping -Dversion=1.0.0 -DarchetypeArtifactId=maven-archetype-mojo
après avoir généré le projet installer/déployer.
Voici comment je fais: j'ai mis le plugin de mapping du cycle de vie de m2e dans un profil séparé au lieu de la section par défaut
<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>
j'ai ouvert un bug (trivial) pour cela à m2e. Votez pour si vous voulez que le message d'avertissement soit parti pour de bon...
j'ai eu le même problème, où:
Pas de marché les entrées trouvées pour gérer construire-helper-maven-plugin:1.8:ajoutez-source Eclipse. Consultez l'Aide pour plus d'informations.
et en cliquant sur la fenêtre > Préférences > Maven > Discovery > le bouton Ouvrir catalogue ne signalerait aucune connexion.
mise à jour de 7u40 à 7u45 sur Centos 6.4 et OSX corrige le problème.
Maven essaie de télécharger l'artefact de cartographie du cycle de vie de m2e, que M2E utilise pour déterminer comment traiter les plugins dans Eclipse (ajout de dossiers source, etc.). Pour une raison que cet artefact ne peut pas être téléchargé. Avez-vous une connexion internet? D'autres artefacts peuvent-ils être téléchargés à partir de dépôts? Les paramètres de Proxy?
pour plus de détails sur Maven, essayez d'activer la sortie de débogage M2E (paramétrage/Maven/Debug Output checkbox) et cela pourrait vous donner plus de détails comme pourquoi il ne peut pas télécharger à partir du référentiel.
m2e 1.7 introduit une nouvelle syntaxe pour les métadonnées de cartographie du cycle de vie qui ne cause plus cet avertissement:
<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>
il se produit en raison d'une configuration de plugin manquante (selon Vaadin demo pom.xml commentaire):
cette configuration de plugin est utilisée pour stocker les paramètres Eclipse m2e seulement. Il n'a aucune influence sur le Maven construire lui-même.
<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>