Błąd „Określony cel wymaga wykonania projektu, ale w tym katalogu nie ma POM” po wykonaniu polecenia maven

113

Mam pom.xmlna C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xmli wykonywane:

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

jednak zwrócił poniższy błąd:

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

Czy ktoś może wyjaśnić, dlaczego się nie udaje?

Adrian
źródło
Sprawdzałeś tutaj? maven.apache.org/plugins/maven-install-plugin/usage.html Twój szablon wygląda na nieprawidłowy. Widzę, że jako pierwszy argument pojawia się plik .jar.
Deividi Cavarzan
tak, to polecenie działa poprawnie na innym komputerze, ale nie mogę na moim komputerze, zainstalowałem najnowszą wersję jdk i maven
Adrian
Ok, teraz lepiej widzę błąd. Czy masz w tym folderze plik pom.xml, który nazywasz mvn install-install-file? Jeśli tak, czy możesz zaktualizować swoje pytanie?
Deividi Cavarzan
Tak, mam plik pom.xml
Adrian
Czy możesz opublikować swoje pytanie?
Deividi Cavarzan

Odpowiedzi:

192

Ten link pomógł: https://stackoverflow.com/a/11199865/1307104

Edytuję moje polecenie, dodając cudzysłowy dla każdego parametru w ten sposób:

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"

Udało się.

Adrian
źródło
1
Od kiedy potrzebuję wycen? Jestem teraz tak zdziwiony i odetchnęłam z ulgą, gdy w końcu znalazłem odpowiedź na taki
bzdurny
Napotkałem podobny problem podczas wykonywania deploy:deploy-file, ale moim problemem było to, że po prostu przegapiłem myślnik („ -”) przed jedną z opcji.
RAM237
Dziękuję Ci. Czuję się jak w 1999 roku, a my w 2018: /
Nordes
Jeśli korzystasz z programu PowerShell, możesz wizualnie zobaczyć, jak PowerShell oddziela argumenty za pomocą kolorów w wierszu poleceń lub umieszczając „echo” przed poleceniem. Na przykład „echo mvn install: install-file ...”.
turiyag
We wcześniejszej wersji maven nigdy nie podawałem podwójnych cudzysłowów. Ale teraz to nie działa bez niego. to rozwiązało mój problem.
Pankaj
39

Dla każdego z tych, którzy doświadczają tego w systemie Windows i żadne z powyższych nie działało, spróbuj uruchomić to z cmd.exe. Wykonywanie tych poleceń za pomocą programu PowerShell powodowało za każdym razem niepowodzenie instalacji.

Josh Sullivan
źródło
1
Ten sam problem, obsługa argumentów Powershell i CMD działa inaczej i wydaje się być myląca. MVN
eageranalyst
Korzystałem z przewodnika Maven Pierwsze kroki i próbowałem wykonać polecenie „mvn -B archetype: generuj .....” w środowisku Windows PowerShell i otrzymywałem podobny błąd. Przejście na innego klienta wiersza poleceń (mintty git bash) rozwiązało problem.
AbstractVoid
27

W oknach, o ile mi wiadomo, wszystkie parametry należy ująć w cudzysłów.

Więc jeśli chcesz stworzyć archetyp aplikacji internetowej maven, wykonaj następujące czynności:

Wymagania wstępne:

  1. Upewnij się, że masz zainstalowanego mavena i masz go w zmiennej środowiskowej PATH.

Jak:

  1. Otwórz program Windows PowerShell
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. archetype mvn: generuj "-DgroupId = com.javan.dev" "-DartifactId = MyWebApp" "-DarchetypeArtifactId = maven-archetype-webapp" "-DinteractiveMode = false"

wprowadź opis obrazu tutaj

Uwaga: jest to testowane tylko w systemie Windows 10 PowerShell

J.Javan
źródło
Zweryfikowano na Mac OS X. Również dla dprowizarda java-simplemożesz użyć polecenia: mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple"z trybem interaktywnym lub z dodatkowymi parametrami.
Andrey Lebedenko
9

Dodanie jeszcze jednej odpowiedzi dla użytkowników systemu Windows. Jeśli nic z tego nie rozwiązuje problemów.

Nie dodawać spaceprzed ani po=

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

Lepiej jest umieścić wszystko w podwójnych cudzysłowach, np. „-DgroupId = com ..” To da dokładny błąd, a nie jakiś przypadkowy błąd.

Dziwne, że maven nawet nie chce o tym wspomnieć w dokumentacji.

madhairsilence
źródło
1
twoje rozwiązanie zadziałało, umieściłem całą sekcję -D w "" ... to naprawdę niesamowite, że produkt tak słabo zaprojektowany i źle zakodowany, jak Maven, stał się tak popularny ...
Pierluigi Vernetto
1

Zmiana, mvn cleanaby mvn clean --file *.pomrozwiązać ten problem dla mnie.

Matthias Braun
źródło
1

W systemie Windows otrzymałem ten błąd podczas pracy w wierszu polecenia innego niż administrator. Kiedy uruchomiłem to jako administrator, błąd zniknął.

tcb
źródło
1

1. utwórz folder lib w pliku projektu,

2. skopiuj plik jarFiles do folderu lib

3. kliknij prawym przyciskiem myszy plik jarFile, przejdź do ścieżki kompilacji> Dodaj do ścieżki kompilacji (teraz Twój plik jar jest częścią Twoich referencyjnych bibliotek)

4. otwórz wiersz poleceń i przejdź do katalogu projektu i napisz

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

6.Zbuduj ponownie indeks lokalnego repozytorium, otwierając go w programie eclipse - przejdź do okna> pokaż widok> inne> maven> maven Repositories. Kliknij prawym przyciskiem myszy lokalne repozytorium i naciśnij „RebuildIndex”

5. otwórz plik pom.xml i dodaj swoją zależność

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

i biegnij

mvn clean
mvn compile 
mvn test 
CTester
źródło
Zastanawiałem się, jak prosta komenda maven zawiodłaby ... Znalazłem twoje rozwiązanie i voila! Zadziałało! Nikt nie pisał parametrów java w ", czego mi brakowało. Dziękuję bardzo :)
russellhoff
0

Otrzymałem ten błąd nagle w Netbeans (ale zadziałał z wiersza poleceń) i okazuje się, że inny program zmienił domyślny katalog wiersza poleceń. A ponieważ Netbeans uruchamia „cmd / c” podczas wywoływania mavena, uruchamia się w niewłaściwym katalogu.

Sprawdź w Regedit wartość

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun  

Jeśli została ustawiona, prawdopodobnie powinieneś ją usunąć, aby rozwiązać problem. (1)

(Wylądowałem tutaj, próbując rozwiązać ten problem, może nie mieć 100% zastosowania do bieżącego pytania - ale może pomóc innym)

(1) Zmiana domyślnego katalogu startowego dla wiersza poleceń w systemie Windows 7

AtliB
źródło
0
  • Wykonanie polecenia maven wymagało pliku pom.xml, który zawiera informacje o projekcie i szczegóły konfiguracji używane przez Maven do zbudowania projektu. Zawiera wartości domyślne dla większości projektów.

  • Upewnij się, że porject powinien zawierać pom.xml na poziomie głównym.

Nanda Balakrishnan
źródło
0

Dodaj plik Jenkinsfile, w którym znajduje się plik pom.xml. Podaj ścieżkę do katalogu w katalogu dir („project-dir”),

Dawny:

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
źródło
0

Sprawdź nazwę pliku, tzn. Plik pom.xml jest poprawnie napisany z odpowiednim rozszerzeniem .xml .

Przykładem tego błędu są

pom.ml pm.xl

Gani
źródło
0

Może występować problem z konfiguracją ścieżki Mavena, jeśli używasz systemu operacyjnego typu unix.

Krok 1: utwórz nowy plik w ścieżce ~/.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

Etap 2: Powłoka prowadzony source ~/.bash_profile lub modyfikować zsh plik konfiguracyjny (dodać nową linię: source ~/.bash_profile)

daidai21
źródło
-1

„Określony cel wymaga realizacji projektu”: odpowiedź zawiera się w Twoim pytaniu. Miałem ten sam problem. Uruchom "komendę mvn" w folderze projektu. Upewnij się także, że jest to projekt skonfigurowany przez mavena i dlatego zawiera plik "POM.xml" i powinieneś być gotowy!

krutika sheth
źródło
2
To polecenie służy do zainstalowania lokalnego pliku jar innego producenta. Nie mamy ze sobą kodu źródłowego projektu
madhairsilence
-2

Uruchom go z katalogu, w którym znajduje się POM.XML.

Sasiraj
źródło
9
Negocjowany, ponieważ install:install-filecel nie musi (nie może być) uruchamiany w projekcie. Służy do ręcznego instalowania artefaktu w repozytorium.
Zoltán
Próbuję przesłać plik zip, który nie zawiera Pom xml. downvoted
kazanaki