Maven 3.3.1 ECLIPSE: la propriété système -Dmaven.multiModuleProjectDirectory n'est pas définie

86

Je viens d'installer Maven 3.3.1 sur Mac OS X, et la construction d'un projet Maven avec Eclipse me donne cette erreur:

-Dmaven.multiModuleProjectDirectory system property is not set.
Check $M2_HOME environment variable and mvn script match.

Cela ne s'est pas produit auparavant avec Maven 3.2.5.

Existe-t-il un moyen de résoudre ce problème (sauf en passant à la version 3.2.5)?

Où puis-je définir exactement cette propriété "multiModuleProjectDirectory" dans Eclipse?

Bob
la source
3
Il s'agissait d'un bug m2e déposé en date du 24/03/2015 et a depuis été résolu. Veuillez consulter stackoverflow.com/a/29735560/751158.
ziesemer

Réponses:

191

En Eclipsevous devez aller comme ça.

Window-> Preference -> Java -> Installed JREs -> Edit

Dans l'édition, Default VM argumentsvous devez mettre

Si vous avez déjà défini le maven home.

-Dmaven.multiModuleProjectDirectory=$M2_HOME
Diego Macario
la source
Je ne sais pas pourquoi, mais lorsque vous exécutez une option maven comme clean dans Eclipse, cela montrera que c'est nécessaire.
Diego Macario
5
@atamanroman et tout - c'était un bug m2e déposé au 24/03/2015, et a depuis été résolu. Veuillez consulter stackoverflow.com/a/29735560/751158 .
ziesemer
Vous pouvez également ajouter les arguments VM à partir de Run Configuration -> Maven Build. Sélectionnez votre configuration de lancement et ouvrez l'onglet JRE. Ajouter la -Dmaven.multiModuleProjectDirectory=$M2_HOMEzone de texte des arguments de la VM.
Bogie
J'ai suivi la solution et je voyais toujours la même erreur.C'était parce que le projet maven faisait référence à jre 1.7 mais JAVA_HOME a été défini sur jre1.8.Faire en sorte que le projet Maven pointe vers le jre 1.8 dans configure Build path-> java build path a résolu le problème.
Shubha S
21

Dans IntelliJ, vous pouvez définir cette option dans le champ Options VM que vous pouvez trouver dans la vue de configuration suivante:

Préférences / Construction, exécution, déploiement / Outils de construction / Maven / Runner

entrez la description de l'image ici

gérosalesc
la source
Cela fonctionne également pour IntelliJ Idea 14.0 avec Maven 3.3.9
Dreamcatcher
17

Cela a été classé comme un bogue avec m2e dans Eclipse à https://bugs.eclipse.org/bugs/show_bug.cgi?id=462944 , en raison des modifications apportées à Maven 3.3.1.

Ceci est corrigé dans m2e 1.5.2 à partir du 13/04/2015. Il s'agit d'une version disponible qui peut être installée à partir de http://download.eclipse.org/technology/m2e/releases/ .

(Plus besoin de modifier les arguments JVM pour l'ensemble de l'espace de travail ou pour des configurations de lancement spécifiques.)

Ziesemer
la source
1
Je reçois: An error occurred while collecting items to be installed session context was:(profile=epp.package.jee, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=). No repository found containing: osgi.bundle,org.aspectj.runtime.source,1.7.0.20120703164200 No repository found containing: osgi.bundle,org.eclipse.contribution.weaving.jdt.source,2.2.0.e37x-RELEASE-20120704-0900 + autres
Mykel Alvis
La dernière version 1.5.X devrait être ici: download.eclipse.org/technology/m2e/milestones/1.5
cyfur01
7

Définissez comme ceci dans les options JVM:

-Dmaven.multiModuleProjectDirectory=HOME_PATH_OF_YOU_PROJECT
khmarbaise
la source
1
Où puis-je définir exactement les options JVM d'un projet dans Eclipse?
Bob
1
PROJECT_DIR a plus de sens que M2_HOME.
atamanroman
1
cette variable n'existe pas - ce à quoi vous essayiez de faire référence est $ PROJECT_LOC
specializt
3

Si vous avez ce message d'erreur sur votre ligne de commande, veuillez vérifier si votre variable PATH pointe vers le même apache-maven-3.X.X/bindossier d' installation maven que votre variable M2_HOME. Dans mon cas, je mélangeais deux versions, ce qui a entraîné cette erreur.

dvtoever
la source
2

allez à exécuter la configuration, créez une nouvelle maven buildconfiguration de lancement où dans le premier onglet vous remplissez le répertoire de base et l'objectif, puis allez à jre tabet ajoutez à vm argscette configuration:

-Dmaven.multiModuleProjectDirectory=%M2_HOME%

M2_HOMEest une variable d'environnement pointant vers le répertoire de base de votre installation maven

hd84335
la source
2

J'ai rencontré le même problème avec les versions Maven 3.3 et 3.2, j'ai donc décidé de le rétrograder à la version 3.0.5 et cela fonctionnait très bien.

Mohamed Ennahdi El Idrissi
la source
0

J'ai eu le même problème avec intelliJ 14, j'ai essayé différentes solutions fournies sur les forums mais cela n'a pas fonctionné. Ce que j'ai fait est de désinstaller complètement intellij et d'installer intellij 15.0.1 et d'importer le même projet, puis tout fonctionne bien.


la source
0

Pour définir la maven.multiModuleProjectDirectorypropriété de manière permanente dans Maven, j'ai ajouté un profil activé par défaut qui initialise la propriété avec la variable d'environnement MAVEN_HOME dans le settings.xmlfichier. Ou vous pouvez également utiliser la variable d'environnement M2_HOME .

<profile>
    <id>my-profile</id>
    <properties>
            <maven.multiModuleProjectDirectory>${env.MAVEN_HOME}</maven.multiModuleProjectDirectory>
    </properties>
</profile>
<activeProfiles>
    <activeProfile>my-profile</activeProfile>
</activeProfiles>
dabla
la source