Fehler "Für das von Ihnen angegebene Ziel muss ein Projekt ausgeführt werden, in diesem Verzeichnis befindet sich jedoch kein POM", nachdem der Befehl maven ausgeführt wurde

113

Ich habe ein pom.xmlin C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xmlund ich habe ausgeführt:

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

es gab jedoch den folgenden Fehler zurück:

[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]

Kann jemand erklären, warum es fehlschlägt?

Adrian
quelle
Hast du hier nachgesehen? maven.apache.org/plugins/maven-install-plugin/usage.html Ihre Vorlage scheint ungültig zu sein. Ich sehe, dass die .jar-Datei beim ersten Argument kommt.
Deividi Cavarzan
Ja, dieser Befehl wird korrekt auf einem anderen PC ausgeführt, aber ich kann nicht auf meinem PC. Ich habe die neueste Version von JDK und Maven installiert
Adrian
Ok, jetzt sehe ich den Fehler besser. Haben Sie eine pom.xml in diesem Ordner, die Sie mvn install-install-file nennen? Wenn ja, können Sie Ihre Frage aktualisieren?
Deividi Cavarzan
Ja, ich habe eine pom.xml
Adrian
Können Sie bitte Ihre Frage posten?
Deividi Cavarzan

Antworten:

190

Dieser Link hat geholfen: https://stackoverflow.com/a/11199865/1307104

Ich bearbeite meinen Befehl, indem ich Anführungszeichen für jeden Parameter wie folgt hinzufüge:

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"

Es hat funktioniert.

Adrian
quelle
1
Seit wann brauche ich Angebote? Ich bin gerade so verwirrt und erleichtert, endlich eine Antwort auf eine solche
Müllfehlermeldung
Ich hatte dabei ein ähnliches Problem deploy:deploy-file, aber mein Problem war, dass ich nur den Bindestrich (" -") vor einer der Optionen verpasst habe .
RAM237
Danke dir. Ich fühle mich wie im Jahr 1999 und wir sind im Jahr 2018: /
Nordes
Wenn Sie sich in Powershell befinden, können Sie visuell sehen, wie PowerShell Argumente mit den Farben in der Befehlszeile trennt, oder indem Sie "Echo" vor den Befehl setzen. Wie "echo mvn install: install-file ...".
Turiyag
In früheren Versionen von maven habe ich nie doppelte Anführungszeichen angegeben. Aber jetzt geht es nicht mehr ohne. Dies löste mein Problem.
Pankaj
39

Versuchen Sie, dies unter cmd.exe auszuführen, wenn dies unter Windows auftritt und keines der oben genannten Verfahren funktioniert hat. Das Ausführen dieser Befehle über PowerShell führte dazu, dass die Installation jedes Mal fehlschlug.

Josh Sullivan
quelle
1
Gleiches Problem, Powershell und CMD Argument Behandlung funktionieren unterschiedlich und scheinen
MVN
Befolgte Mavens Erste Schritte und versuchte, "mvn -B archetype: generate ....." unter Windows PowerShell auszuführen, und bekam einen ähnlichen Fehler. Das Wechseln zu einem anderen Befehlszeilen-Client (mintty git bash) löste das Problem.
AbstractVoid
26

Unter Windows müssen Sie meiner Meinung nach alle Parameter in Anführungszeichen setzen.

Wenn Sie also einen Maven-Webapp-Archetyp erstellen möchten, gehen Sie wie folgt vor:

Voraussetzungen:

  1. Stellen Sie sicher, dass Sie maven installiert haben und es in Ihrer PATH-Umgebungsvariablen haben.

Wie man:

  1. Windows Powershell öffnen
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. mvn archetype: generiere "-DgroupId = com.javan.dev" "-DartifactId = MyWebApp" "-DarchetypeArtifactId = maven-archetype-webapp" "-DinteractiveMode = false"

Geben Sie hier die Bildbeschreibung ein

Hinweis: Dies wird nur unter Windows 10 Powershell getestet

J. Javan
quelle
Verifiziert unter Mac OS X. Außerdem können Sie für dprowizard java-simpleden folgenden Befehl verwenden: mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple"im interaktiven Modus oder mit zusätzlichen Parametern.
Andrey Lebedenko
9

Hinzufügen einer weiteren Antwort für Windows-Benutzer. Wenn nichts davon die Probleme löst.

Nicht spacevorher oder nachher hinzufügen=

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

Es ist besser, alles in doppelte Anführungszeichen zu setzen, wie "-DgroupId = com ..". Dies gibt Ihnen einen genauen Fehler und keinen zufälligen Fehler.

Seltsam, dass Maven dies nicht einmal in der Dokumentation erwähnen möchte.

madhairsilence
quelle
1
Ihre Lösung hat funktioniert, ich habe den gesamten -D-Bereich in ""
eingefügt
1

Ändern, mvn cleanum mvn clean --file *.pomdieses Problem für mich zu beheben.

Matthias Braun
quelle
1

Unter Windows wurde dieser Fehler angezeigt, wenn ich unter einer Nicht-Administrator-Eingabeaufforderung ausgeführt wurde. Als ich dies als Administrator ausführte, verschwand der Fehler.

tcb
quelle
1

1.Erstellen Sie einen lib-Ordner in Ihrer Projektdatei.

2.Kopieren Sie Ihre jarFiles in den lib-Ordner

3. Klicken Sie mit der rechten Maustaste auf Ihre jarFile. Gehen Sie zu Erstellungspfad> Zum Erstellungspfad hinzufügen (jetzt ist Ihre JAR-Datei Teil Ihrer aktualisierten Bibliotheken).

4. Öffnen Sie die Eingabeaufforderung, navigieren Sie zu Ihrem Projektverzeichnis und schreiben Sie

mvn install: install-file "-Dfile=<yourJarFileName>.jar" "-DgroupId=<yourGroupID>" "-DartifactId=<yourArtifactId>" "-Dversion=<yourVersion>" "-Dpackaging=jar" 

6. Erstellen Sie Ihren lokalen Repository-Index neu, indem Sie ihn in Eclipse öffnen. Gehen Sie zu Fenster> Ansicht anzeigen> Andere> Maven> Maven-Repositorys. Klicken Sie mit der rechten Maustaste auf lokale Repositores und klicken Sie auf "RebuildIndex".

5. Öffnen Sie Ihre Datei pom.xml und fügen Sie Ihre Abhängigkeit hinzu

    <dependency>
        <groupId><yourGroupID></groupId>
        <artifactId><yourArtifactId></artifactId>
        <version><yourVersion></version>
    </dependency>

und Renn

mvn clean
mvn compile 
mvn test 
CTester
quelle
Ich habe mich gefragt, wie ein einfacher Maven-Befehl fehlschlagen würde ... Ich habe Ihre Lösung gefunden und voila! Es funktionierte! Niemand schrieb die Java-Parameter innerhalb der ", was mir fehlte. Vielen Dank :)
Russellhoff
0

Ich habe diesen Fehler plötzlich in Netbeans erhalten (aber er hat über die Befehlszeile funktioniert) und es stellte sich heraus, dass ein anderes Programm das Standardverzeichnis der Eingabeaufforderung geändert hat. Und da Netbeans beim Aufrufen von maven "cmd / c" ausführt, wird es in einem falschen Verzeichnis gestartet.

Überprüfen Sie in Regedit den Wert für

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun  

Wenn es eingestellt wurde, sollten Sie es wahrscheinlich entfernen, um das Problem zu beheben. (1)

(Ich bin hier gelandet, als ich versucht habe, dieses Problem zu beheben. Möglicherweise ist es nicht zu 100% auf die aktuelle Frage anwendbar - aber ich kann anderen helfen.)

(1) Ändern des Standardstartverzeichnisses für die Eingabeaufforderung in Windows 7

AtliB
quelle
0
  • Für die Ausführung des Befehls maven war eine Datei pom.xml erforderlich, die Informationen zum Projekt und Konfigurationsdetails enthält, die von Maven zum Erstellen des Projekts verwendet wurden. Es enthält Standardwerte für die meisten Projekte.

  • Stellen Sie sicher, dass porject pom.xml auf der Stammebene enthält.

Nanda Balakrishnan
quelle
0

Fügen Sie die Jenkins-Datei hinzu, in der sich die Datei pom.xml befindet. Geben Sie den Verzeichnispfad in dir ('project-dir') an.

Ex:

node {

    withMaven(maven:'maven') {

        stage('Checkout') {
            git url: 'http://xxxxxxx/gitlab/root/XXX.git', credentialsId: 'xxxxx', branch: 'xxx'
        }

        stage('Build') {

            **dir('project-dir') {**
                sh 'mvn clean install'

                def pom = readMavenPom file:'pom.xml'

                print pom.version
                env.version = pom.version
            }
        }
    }
}
Prabu Balasubramanian
quelle
0

Überprüfen Sie den Namen der Datei, dh die Datei pom.xml ist mit der richtigen Dateierweiterung .xml richtig geschrieben .

Beispiele für diesen Fehler sind

pom.ml pm.xl

Gani
quelle
0

Möglicherweise liegt ein Problem mit der Maven-Pfadkonfiguration vor, wenn Sie ein Unix-ähnliches Betriebssystem verwendet haben.

Schritt 1: Erstellen Sie eine neue Datei im Pfad ~/.bash_profile

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH

Schritt 2: Shell run source ~/.bash_profile OR zsh Konfigurationsdatei ändern (fügen neue Zeile: source ~/.bash_profile)

daidai21
quelle
-1

"Für das von Ihnen angegebene Ziel muss ein Projekt ausgeführt werden": Die Antwort finden Sie in Ihrer Frage. Ich stand vor dem gleichen Problem. Führen Sie den "mvn-Befehl" im Projektordner aus. Stellen Sie außerdem sicher, dass es sich um ein maven-konfiguriertes Projekt handelt und daher die Datei "POM.xml" enthält.

krutika sheth
quelle
2
Mit diesem Befehl wird das lokale JAR eines Drittanbieters installiert. Wir haben den
Projektquellcode nicht
-2

Bitte führen Sie es aus dem Verzeichnis aus, in dem sich POM.XML befindet.

Sasiraj
quelle
9
Downvoted, weil das install:install-fileZiel nicht für ein Projekt ausgeführt werden muss (kann nicht?). Es wird zum manuellen Installieren eines Artefakts in einem Repository verwendet.
Zoltán
Ich versuche, eine Zip-Datei hochzuladen, die keine Pom-XML enthält. downvoted
kazanaki