151 votes

Erreur "L'objectif que vous avez spécifié nécessite un projet à exécuter mais il n'y a pas de POM dans ce répertoire" après avoir exécuté la commande maven

J'ai un pom.xml en C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xml et que j'ai exécuté :

mvn install:install-file -DgroupId=es.mityc.jumbo.adsi -DartifactId=xmlsec-1.4.2-ADSI -Dversion=1.0 -Dpackaging=jar -Dfile=C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\core\xmlsec-1.4.2-ADSI-1.0.jar

mais il a retourné l'erreur ci-dessous :

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.310s
[INFO] Finished at: Thu May 02 16:48:29 COT 2013
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM
 in this directory (C:\Users\AArmijos). Please verify you invoked Maven from the
 correct directory. -> [Help 1]

Quelqu'un peut-il expliquer pourquoi il échoue ?

0 votes

Vous avez vérifié ici ? maven.apache.org/plugins/maven-install-plugin/usage.html votre modèle semble être invalide. Je vois que le fichier .jar est le premier argument.

0 votes

Oui, cette commande s'exécute correctement sur un autre pc mais je ne peux pas sur mon pc, j'ai installé la dernière version de jdk et maven

0 votes

Ok maintenant je vois mieux l'erreur. Avez-vous un pom.xml dans ce dossier que vous appelez mvn install-install-file ? Si c'est le cas, pouvez-vous mettre à jour votre question ?

263voto

Adrian Points 420

Ce lien m'a aidé : https://stackoverflow.com/a/11199865/1307104

Je modifie ma commande en ajoutant des guillemets pour chaque paramètre comme ceci :

mvn install:install-file "-DgroupId=org.mozilla" "-DartifactId=jss" "-Dversion=4.2.5" "-Dpackaging=jar" "-Dfile=C:\Users\AArmijos\workspace\componentes-1.0.4\deps\jss-4.2.5.jar"

Ça a marché.

3 votes

Depuis quand ai-je besoin de devis ? Je suis tellement perplexe en ce moment, et soulagé d'avoir enfin trouvé une réponse à un message d'erreur aussi absurde ...

0 votes

J'ai rencontré le même problème en faisant deploy:deploy-file mais mon problème est que j'ai juste manqué le tiret (" - ") devant l'une des options.

3 votes

Si vous êtes dans powershell, vous pouvez voir visuellement comment PowerShell sépare les arguments avec les couleurs de la ligne de commande, ou en mettant "echo" devant la commande. Comme, "echo mvn install:install-file...".

64voto

Josh Sullivan Points 906

Si vous rencontrez ce problème sous Windows et que rien de ce qui précède n'a fonctionné, essayez d'exécuter cette commande depuis cmd.exe. L'exécution de ces commandes via PowerShell a fait échouer l'installation à chaque fois.

1 votes

Même problème, la gestion des arguments Powershell et CMD fonctionne différemment et semble confondre MVN.

0 votes

J'ai suivi le guide de démarrage de Maven et essayé d'exécuter "mvn -B archetype:generate ....." sur Windows PowerShell et j'ai obtenu une erreur similaire. Le passage à un autre client de ligne de commande (mintty git bash) a résolu le problème.

2 votes

Dans PowerShell, le . est important car il est utilisé pour l'accès aux propriétés/méthodes des objets, comme dans la plupart des autres langages .NET. Si vous avez des points dans les args, j'ai généralement cité ceux-ci dans le passé afin que PowerShell les traite comme des chaînes littérales.

57voto

J.Javan Points 473

Sous Windows, lorsque vous utilisez PowerShell, vous devez placer tous les paramètres entre guillemets.

Ainsi, si vous voulez créer un archétype de webapp maven, vous devez procéder comme suit :

Conditions préalables :

  1. Assurez-vous d'avoir installé maven et de l'avoir dans votre variable d'environnement PATH.

Comment faire :

  1. Ouvrez Windows powershell
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. mvn archetype:generate "-DgroupId=com.javan.dev" "-DartifactId=MyWebApp" "-DarchetypeArtifactId=maven-archetype-webapp" "-DinteractiveMode=false"

enter image description here

Note : Ceci est testé uniquement sur Windows 10 powershell.

0 votes

Vérifié sur Mac OS X. Aussi, pour dprowizard java-simple vous pouvez utiliser la commande suivante : mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple" en mode interactif ou avec des paramètres supplémentaires.

0 votes

Le même problème existe aussi sur l'invite de commande. la vraie solution est de mettre les valeurs des paramètres entre guillemets.

14voto

madhairsilence Points 1415

Ajout d'une réponse supplémentaire pour les utilisateurs de Windows. Si rien de tout cela ne résout les problèmes.

Ne pas ajouter space avant ou après =

-DgroupId= com.company.module //Wrong , Watch the space after the equal to 
-DgroupId=com.company.module //Right 

Il est préférable de tout mettre entre guillemets, comme "-DgroupId=com ". Cela vous donnera l'erreur exacte plutôt qu'une erreur aléatoire.

Bizarre que maven ne prenne même pas la peine de le mentionner dans sa documentation.

3 votes

Votre solution a fonctionné, j'ai mis toutes les sections -D dans ""... c'est vraiment étonnant qu'un produit aussi mal conçu et mal codé que Maven ait réussi à devenir si populaire...

8voto

Mideel Points 267

Dans mon cas, c'est parce que j'ai copié-collé la commande depuis le navigateur et il s'est avéré que le tiret n'était pas le tiret ASCII, il suffit de supprimer et de taper le tiret à nouveau.

http://www.toptip.ca/2017/04/maven-most-weird-error-causing-failure.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X