2010-12-23 4 views
4

J'utilise le plugin m2eclipse dans Eclipse pour pouvoir importer un projet Maven. Le plugin lit le pom.xml et trie les dépendances dans les projets d'une manière conviviale Eclipse, donc je ne regarde pas une mer de références et d'erreurs cassées.Comment puis-je empêcher le plug-in m2eclipse d'interférer avec les builds mvn de la ligne de commande?

J'utilise Eclipse pour le développement de code, mais je crée habituellement les projets à partir de la ligne de commande, par ex. "mvn clean install".

Malheureusement, lorsque je fais cela, m2eclipse détecte l'activité du disque et tente de reconstruire l'espace de travail. Cela interfère avec la construction de la ligne de commande et entraîne parfois une condition de concurrence. Par exemple, la ligne de commande peut être en phase de nettoyage mais échoue car elle tente de supprimer un fichier ou un répertoire qui est verrouillé pendant la reconstruction de l'espace de travail. Mis à part que la reconstruction de l'espace de travail est incroyablement lente, et entre les builds ratés et le CPU gaspillé, mon processus de construction est 2-3 fois plus long qu'il ne devrait l'être.

Il n'est pas possible de ne pas utiliser Eclipse (par exemple pour utiliser Netbeans) ou de désactiver m2eclipse. C'est un plugin utile sauf pour ce comportement. Donc, ma question est, comment puis-je arrêter m2eclipse de reconstruire l'espace de travail tout le temps? Puis-je invoquer une actualisation manuelle et désactiver ce comportement?

Répondre

2

Comme une solution rapide, vous pouvez désactiver automatisé Eclipse builds décochant Project > Build Automatically

+0

Ce n'est pas la construction du projet, c'est la reconstruction de l'espace de travail. c'est-à-dire qu'il voit des changements dans le dossier du projet et m2eclipse lance une sorte de build mvn pour mettre à jour l'espace de travail afin de refléter les changements. – locka

+0

Cette option concerne l'intégralité de l'espace de travail. Eclipse ne peut pas créer automatiquement un projet par projet: http://stackoverflow.com/questions/4333672/eclipse-per-project-build-setting L'avez-vous essayé? – dimitrisli

+0

Désactiver la génération automatique semble l'avoir fait. Je vois encore des blips où la barre d'état dit reconstruction espace de travail mais l'invocation réelle semble être évitée. – locka

0

Le problème est que Eclipse détecte que les ressources compilées ont disparu et commence la reconstruction.

Vous ne devriez pas avoir besoin d'effectuer mvn clean install, mais plutôt mvn install, car toutes vos ressources sont déjà à jour.

+0

Le plugin fait une reconstruction de l'espace de travail même lorsque je fais une "installation mvn" – locka

+0

Eh bien, cela dépend aussi de votre pom. Pouvez-vous l'afficher? Sinon, vous devriez signaler un bug vers M2Eclipse: https://issues.sonatype.org/browse/MNGECLIPSE. –

0

En plus de ce dimitrisli dit, je suggère d'utiliser différents répertoires de sortie pour Eclipse et la ligne de commande.

Pour ce faire, définissez un nouveau profil (par exemple, "eclipse") et définissez le répertoire de sortie sur <outputDirectory>${project.build.directory}/classes-eclipse</outputDirectory> dans ce profil. De cette façon, même si vous construisez en parallèle (à partir de l'éclipse et de la ligne de commande), ils ne vont pas interférer les uns avec les autres.

Questions connexes