web-dev-qa-db-fra.com

Maven M2_HOME défini sur un répertoire non valide (Windows 7)

J'ai essayé d'installer Maven sur Windows 7 avec des résultats médiocres. Quelques informations de base:

Répertoire d'installation Maven: C:\Program Files\Apache Software Foundation\Apache-maven-3.0.4 Variable système "M2_HOME": C:\Program Files\Apache Software Foundation\Apache-maven-3.0.4\ Variable système "Path": %M2_HOME%Apache-maven\src\bin;%Java_HOME%\bin

Si je lance mvn --version dans le chemin de commande, je reçois le message d'erreur suivant:

Définissez la variable M2_HOME dans votre environnement pour qu'elle corresponde à l'emplacement de l'installation Maven.

Donc, pour le moment, le sous-répertoire pour mvn n'est pas défini en fonction des instructions, ce qui serait %M2_HOME%\bin. Si je remplace %M2_HOME%Apache-maven\src\bin par celui-là, je reçois:

mvn n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier batch

Dans le répertoire d'installation de Maven (ou dans le fichier Zip), il n'y a pas de dossier \bin directement dans Apache-maven-3.0.4 et je me demande s'il devrait en exister un?

Je suis un novice chez Maven, j'espère que vous pourrez aider.

En passant, la commande Java fonctionne depuis n’importe quel répertoire, donc je ne pense pas que ce soit le problème ici, mais je ne peux pas en être sûr.

16
MikkoP

Si votre paquet téléchargé Apache-maven-3.3.9 ne contient pas de dossier bin, le téléchargement est incorrect. vous devez télécharger un fichier Zip contenant bin, boot, conf, dossier lib, sinon quelque chose ne va pas. Le fichier téléchargé devrait avoir une taille d’environ 4,8 Mo. Vous pouvez vérifier le fichier via md5 ou SHA1 checksums.

18
khmarbaise

Dans M2_HOME - définir C:\Apache-maven-3.0.4 c'est-à-dire chemin sans bin. Dans PATH - définir %M2_HOME%\bin c'est-à-dire avec bin dans chemin.

37
Achraj

Dans 3.3.1, les fichiers * .bat ont disparu et il ne reste que les fichiers * .cmd. Les .CMD sont les mêmes que .BAT et certains logiciels les attendent. J'ai renommé .CMDs en .BAT afin de le faire fonctionner sous Netbeans. Cela a provoqué "Maven M2_HOME défini dans un répertoire non valide". Copier les .BAT dans les .CMD (c’est-à-dire que les deux étaient dans le dossier) a résolu le problème.

18
TomS

Dans mon cas, la configuration était correcte:

Variables système Windows:

  • M2 C:\dev\software\Apache-maven-3.3.9\bin
  • M2_HOME C:\dev\software\Apache-maven-3.3.9

Variables utilisateur Windows:

  • % M2_HOME%\bin 

Mais j’ai eu le même problème lorsqu’il y avait deux installation de maven même si toutes les références pointaient vers la dernière version qui était dans mon cas la 3.3.9. Aprèssupprimer l'ancienversion, la même commande était reconnue par maven.

AVANT:

maven -v
ERROR: M2_HOME is set to an invalid directory.
M2_HOME = "C:\dev\software\Apache-maven-3.3.9"
Please set the M2_HOME variable in your environment to match the
location of the Maven installation

APRÈS:

maven -v
Apache Maven 3.3.9
Maven home: C:\dev\software\Apache-maven-3.3.9
Java version: 1.7.0_51, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.7.0_51\jre
11
Ithar

Vous devez télécharger le fichier Maven portant le nom "Binary Zip". Par exemple: http://mirrors.digipower.vn/Apache/maven/maven-3/3.1.1/binaries/Apache-maven-3.1.1-bin.Zip

5
Tai Nguyen

J'ai le même problème sur mon ordinateur et je l'ai résolu:

  • J'ai supprimé le répertoire Maven et les variables d'environnement Maven
  • J'ai téléchargé l'archive binaire Zip sur https://maven.Apache.org/download.cgi
  • Je l'ai décompressé sur C:\maven
  • J'ai ajouté une nouvelle variable d'environnement: C:\maven dans M2_HOME, %M2_HOME%\lib dans M2 et %M2% ajouté dans PATH

Et il fonctionne !

2
romainb78

Débarrassez-vous de la variable env M2_HOME. Il n'est pas utilisé par maven 3 et le confond en fait. Si vous l'aviez utilisé dans votre chemin, définissez le chemin de manière explicite vers maven bin ou remplacez-le par autre chose, comme M3_HOME.

1
rhinmass

Pour moi, la variable PATH avait l'ancienne version de maven. Alors je l'ai mis à jour. Je devrais utiliser% M2_HOME% mais j'avais précisé le chemin.

1
user6078975

Je viens tout juste de faire face au même problème… .. Dans mon cas, le problème était que PATH n'était pas configuré correctement pour inclure %M2_HOME%\bin. Une fois défini correctement, le problème a été résolu.

Lorsque vous rencontrez de tels problèmes, veuillez imprimer la valeur de PATH sur la ligne de commande pour vous assurer que les valeurs sont correctement prises en compte. 

1
sonikan

Ajouter l’emplacement entier de la bin à la variable d’environnement "PATH" Ex: C:\Program Files\Apache Software Foundation\Apache-maven-3.0.4\bin

Pas besoin de M2_HOME, M2.It a travaillé pour moi

Microsoft Windows [Version 10.0.14393] (C) 2016 Microsoft Corporation. Tous les droits sont réservés.

C:\Utilisateurs\XXXX> mvn -version Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T22: 11: 47 + 05: 30) Accueil Maven: Logiciel C:\Program Files\Apache Foundation\Apache-maven-3.3.9\bin .. Version Java: 1.8.0_91, fournisseur: Page d'accueil Oracle Corporation Java: C:\Programmes\Java\jdk1.8.0_91\jre Paramètres régionaux par défaut: en_US, codage de la plateforme: Cp1252 Nom du système d'exploitation: "windows 10", version: "10.0", Arch: "AMD64", famille: "dos"

0
Shiva Prasad Adirala

définissez 'M2_HOME' et 'PATH' dans les variables d'environnement de votre compte, supprimez 'PATH' des variables d'environnement système.

0

Tout le succès après les prochaines étapes.

  1. Sur http://maven.Apache.org/download.cgi page de 4 variantes besoin de télécharger le fichier binaire.

  2. Définir la variable d'environnement (astuce de @JamesB - https://stackoverflow.com/a/13093358/3941340 ):

Java_HOME = C:\Program Files\Java\jdk1.6.0_35

MAVEN_HOME = D:\software\Apache-maven-3.0.4

PATH =% PATH%;% MAVEN_HOME%\bin;% Java_HOME%\bin

  1. Exécuter mvn -version
0
Kosmos

Vérifiez les variables système M2_HOME et PATH dans différents emplacements maven.

0
Ishara Samantha

Avait une ancienne version de MVN dans un autre répertoire qui est apparu dans le chemin de recherche. Supprimé l'ancienne version et tout a fonctionné. Recherche de fichier Windows utilisée pour analyser le lecteur à la recherche de toutes les instances de "mvn" afin de retrouver l'ancienne version.

0
mark

Réponse rapide
Suite à des problèmes d'utilisation de M2_HOME liés à différentes versions de Maven installées et pour simplifier les choses, l'utilisation de M2_HOME a été supprimée et n'est plus prise en charge. Autre changement important pour les utilisateurs de Windows: l'utilisation de% HOME% a été remplacée par% USERPROFILE%

Réponse plus détaillée
Ce que vous avez observé a toujours été un problème avec Maven. Lorsque vous installez deux versions différentes dans le même répertoire, l'ancienne version est détectée, tandis que la plus récente ne l'est pas.
Après la publication de Maven 3.3.9, le projet Eclipse Aether a été abandonné et la base de code a été migrée vers le projet Apache Maven. L'objectif initial de la version 3.4.0 était de remplacer Aether par le même code après la migration vers le projet Apache Maven, puis de résoudre les problèmes de bogues du code du résolveur et d'autres zones de Maven. Cela n’a jamais eu lieu comme prévu et la décision a été prise de graver à tout jamais la ligne de publication 3.4.x. Le passage à la version 3.5 a entraîné ces changements

0
mainas

Il pourrait y avoir une possibilité d'avoir une autre version de l'installation de maven à l'emplacement parallèle . Dans ce cas, supprimez la plus indésirable et réinitialisez le chemin approprié contre M2_HOME.

0
theBestIsYetToCome