Eclipse a obtenu le concept de des versions.Ceci est très utile car il permet d'économiser beaucoup de temps.
Comment est-ce Utile
Dites que vous venez de modifier un seul .fichier java. L'augmentation des constructeurs seront en mesure de compiler le code sans avoir à tout recompiler(qui prendra plus de temps).
Maintenant, quel est le problème avec les Plugins Maven
La plupart des plugins maven ne sont pas conçus pour des versions et de là, il crée des ennuis pour la m2e. m2e ne sais pas si le plugin objectif est quelque chose qui est essentiel ou si elle n'est pas pertinente. Si elle s'exécute chaque plugin quand un seul fichier change, il va prendre beaucoup de temps.
C'est la raison pour laquelle m2e s'appuie sur des informations de métadonnées pour comprendre comment l'exécution doit être traitée. m2e a venir avec des options différentes afin de fournir cette information de métadonnées et l'ordre de préférence est comme ci-dessous(par ordre décroissant)
- pom.xml fichier de projet
- parent, grand-parent, et ainsi de suite pom.xml fichiers
- [m2e 1.2+] de l'espace de travail préférences
- installé m2e extensions
- [m2e 1.1+] cycle de vie de la cartographie des métadonnées fournies par le plugin maven
- par défaut le cycle de vie de la cartographie des métadonnées fournies avec m2e
1,2 fait référence à la spécification de pluginManagement section dans la balise de votre pom fichier ou n'importe lequel de ses parents. M2E lit cette configuration pour configurer le projet.Ci-dessous extrait de charge m2e d'ignorer l' jslint
et compress
des objectifs de la yuicompressor-maven-plugin
<pluginManagement>
<plugins>
<!--This plugin's configuration is used to store Eclipse m2e settings
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>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>compress</goal>
<goal>jslint</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
3) Dans le cas où vous ne préfère pas polluer votre pom fichier de métadonnées, vous pouvez le stocker dans un fichier XML externe(option 3). Ci-dessous est un exemple de mappage de fichier qui indique à m2e d'ignorer l' jslint
et compress
des objectifs de la yuicompressor-maven-plugin
<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>compress</goal>
<goal>jslint</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
4) Dans le cas où vous n'aimez pas l'une de ces 3 options, vous pouvez utiliser un m2e connecteur(extension) pour le plugin maven.Le connecteur à leur tour, fournissent les métadonnées de m2e. Vous pouvez voir un exemple de l'information sur les métadonnées au sein d'un connecteur à ce lien . Vous avez peut-être remarqué que les métadonnées se réfère à un configurateur. Cela signifie simplement que m2e de déléguer la responsabilité à la classe java fournies par l'auteur de l'extension.Le configurateur pouvez configurer le projet(comme par exemple ajouter des dossiers source, etc) et de décider d'exécuter le plugin maven lors d'un différentiel de construire(si pas correctement gérés dans le configurateur, il peut conduire à d'interminables projet s'appuie)
Consultez ces liens pour un exemple de la configuratior(link1,link2). Ainsi, dans le cas où le plugin est quelque chose qui peut être gérée via un connecteur externe, alors vous pouvez l'installer. m2e tient à jour une liste de ces connecteurs ont contribué par d'autres développeurs.Ceci est connu comme la découverte de catalogue. m2e vous invite à installer un raccord, si vous ne l'avez pas déjà tout le cycle de vie de la cartographie des métadonnées pour l'exécution par l'une des options(1-6) et la découverte de catalogue a obtenu une extension, qui peut gérer l'exécution.
L'image ci-dessous montre comment m2e vous invite à installer le connecteur pour le build-helper-maven-plugin.
.
5)m2e encourage les auteurs de plugins pour soutenir les différentiels de construire et d'approvisionnement cycle de vie de la cartographie dans le maven-plugin lui-même.Cela signifie que les utilisateurs n'ont pas un cycle de vie des mappages ou les connecteurs.Certains plugin auteurs ont déjà mis en place cette
6) Par défaut m2e détient le cycle de vie de la cartographie des métadonnées pour les plus couramment utilisés par les plugins comme le maven-compiler-plugin et beaucoup d'autres.
Maintenant, revenons à la question :Vous pouvez probablement juste de fournir un ignorer cycle de vie de la cartographie dans 1, 2 ou 3 pour l'objectif spécifique qui est de la création d'ennuis pour vous.