Ошибка «Указанная вами цель требует выполнения проекта, но в этом каталоге нет POM» после выполнения команды maven.

113

У меня есть pom.xmlin, C:\Users\AArmijos\Desktop\Factura Electronica\MIyT\componentes-1.0.4\sources\pom.xmlи я выполнил:

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

однако он вернул ошибку ниже:

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

Может кто-нибудь объяснить, почему это не удается?

Адриан
источник
Вы здесь проверяли? maven.apache.org/plugins/maven-install-plugin/usage.html ваш шаблон кажется недействительным. Я вижу, что файл .jar идет первым аргументом.
Deividi Cavarzan
да, эта команда выполняется правильно на другом компьютере, но я не могу на своем компьютере, я установил последнюю версию jdk и maven
Адриан
Хорошо, теперь я лучше вижу ошибку. У вас есть pom.xml в этой папке, которую вы называете mvn install-install-file? Если да, можете ли вы обновить свой вопрос?
Deividi Cavarzan
Да, у меня есть pom.xml
Адриан
Не могли бы вы задать свой вопрос?
Deividi Cavarzan

Ответы:

193

Эта ссылка помогла: https://stackoverflow.com/a/11199865/1307104

Я редактирую свою команду, добавляя кавычки для каждого параметра, например:

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"

Это сработало.

Адриан
источник
1
С каких это пор мне нужны цитаты? Я так озадачен прямо сейчас и рад, что наконец нашел ответ на такое
вздорное
Я столкнулся с подобной проблемой при выполнении deploy:deploy-file, но моя проблема заключалась в том, что я просто пропустил тире (" -") перед одним из вариантов.
RAM237 04
Спасибо. Я чувствую себя как в 1999, а мы в 2018: /
Nordes
Если вы работаете в PowerShell, вы можете визуально увидеть, как PowerShell разделяет аргументы цветами в командной строке или помещает «echo» перед командой. Например, "echo mvn install: install-file ...".
turiyag
В более ранней версии maven я никогда не использовал двойные кавычки. Но теперь без него не работает. это решило мою проблему.
Pankaj
39

Для тех, кто сталкивается с этим в Windows и ни одно из вышеперечисленных действий не работает, попробуйте запустить это из cmd.exe. Выполнение этих команд через PowerShell каждый раз приводило к сбою установки.

Джош Салливан
источник
1
Та же проблема, обработка аргументов Powershell и CMD работают по-разному и, похоже, сбивают с толку MVN
eageranalyst
Следовал руководству Maven по началу работы и пытался выполнить «mvn -B archetype: generate .....» в Windows PowerShell и получал аналогичную ошибку. Переключение на другой клиент командной строки (mintty git bash) решило проблему.
AbstractVoid
27

Насколько я понимаю, в окнах вы должны заключить все параметры в кавычки.

Итак, если вы хотите создать архетип maven webapp, вы должны сделать следующее:

Предпосылки:

  1. Убедитесь, что у вас установлен maven и он указан в переменной среды PATH.

Как:

  1. Откройте windows powershell
  2. mkdir MyWebApp
  3. cd MyWebApp
  4. mvn archetype: generate "-DgroupId = com.javan.dev" "-DartifactId = MyWebApp" "-DarchetypeArtifactId = maven-archetype-webapp" "-DinteractiveMode = false"

введите описание изображения здесь

Примечание: это проверено только на Windows 10 PowerShell.

J.Javan
источник
Проверено на Mac OS X. Также для dprowizard java-simpleможно использовать следующую команду: в mvn archetype:generate "-DarchetypeGroupId=io.dropwizard.archetypes" "-DarchetypeArtifactId=java-simple"интерактивном режиме или с дополнительными параметрами.
Андрей Лебеденко
9

Добавляем еще один ответ для пользователей Windows. Если ничего из этого не решит проблемы.

Не добавляйте spaceдо или после=

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

Лучше заключить все в двойные кавычки, например "-DgroupId = com ..". Это даст вам точную ошибку, а не какую-то случайную ошибку.

Странно, что maven даже не упоминает об этом в документации.

madhairsilence
источник
1
ваше решение сработало, я поместил весь раздел -D в "" ... действительно удивительно, что продукт, настолько плохо спроектированный и плохо запрограммированный, как Maven, стал настолько популярным ...
Пьерлуиджи Вернетто
5

В моем случае это потому, что я скопировал вставленную команду из браузера, и оказалось, что тире не было тире ASCII, просто удалите и снова введите тире.

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

Mideel
источник
Фактически, это было правильное решение. Спасибо !!!!!
Гусь
1

Переход mvn cleanна mvn clean --file *.pomисправил эту проблему для меня.

Маттиас Браун
источник
1

В Windows я получал эту ошибку при запуске из командной строки без прав администратора. Когда я запустил это как администратор, ошибка исчезла.

УТС
источник
1

1. создайте папку lib в файле проекта,

2. скопируйте файлы jarFiles в папку lib

3. щелкните правой кнопкой мыши свой файл jarFile, перейдите к пути сборки> Добавить в путь сборки (теперь ваш файл jar является частью ваших обновленных библиотек)

4. откройте командную строку, перейдите в каталог своего проекта и напишите

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

6. Восстановите индекс локального репозитория, открыв его в eclipse - перейдите в окно> показать представление> другое> maven> репозитории maven. Щелкните правой кнопкой мыши локальные репозитории и нажмите «RebuildIndex».

5. откройте файл pom.xml и добавьте свою зависимость

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

и беги

mvn clean
mvn compile 
mvn test 
CTester
источник
Мне было интересно, как простая команда maven будет терпеть неудачу ... Я придумал ваше решение и вуаля! Это сработало! Никто не писал параметры java в ", что мне и не хватало. Большое вам спасибо :)"
russellhoff
0

Я внезапно получил эту ошибку в Netbeans (но она работала из командной строки), и оказалось, что какая-то другая программа изменила каталог по умолчанию в командной строке. И поскольку Netbeans запускает «cmd / c» при вызове maven, он запускается в неправильном каталоге.

Проверьте в Regedit значение для

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\Autorun  

Если он был установлен, вам, вероятно, следует удалить его, чтобы решить проблему. (1)

(Я приземлился здесь, когда пытался решить эту проблему, возможно, не на 100% применим к текущему вопросу, но может помочь другим)

(1) Изменение каталога запуска по умолчанию для командной строки в Windows 7

AtliB
источник
0
  • Для выполнения команды maven требуется файл pom.xml, содержащий информацию о проекте и сведения о конфигурации, используемые Maven для сборки проекта. Он содержит значения по умолчанию для большинства проектов.

  • Убедитесь, что porject должен содержать pom.xml на корневом уровне.

Нанда Балакришнан
источник
0

Добавьте файл Jenkins, в котором находится файл pom.xml. Укажите путь к каталогу в каталоге dir ('project-dir'),

Пример:

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
            }
        }
    }
}
Прабу Баласубраманян
источник
0

Проверьте имя файла, т.е. файл pom.xml написан правильно с правильным расширением файла .xml .

Пример этой ошибки:

pom.ml pm.xl

Гани
источник
0

Если вы использовали unix-подобную операционную систему, может возникнуть проблема с конфигурацией пути Maven.

шаг 1: создать новый файл по пути ~/.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

шаг 2: оболочка запустить source ~/.bash_profile или изменить ЗШ конфигурационный файл (добавить новую строку: source ~/.bash_profile)

daidai21
источник
-1

«Указанная вами цель требует выполнения проекта»: ответ в вашем вопросе. Я столкнулся с той же проблемой. Запустите "mvn command" в папке проекта. Также убедитесь, что это настроенный maven проект и, следовательно, содержит файл "POM.xml", и все будет в порядке!

крутика шет
источник
2
Эта команда предназначена для установки локального стороннего jar-файла. У нас нет с собой исходного кода проекта
madhairsilence
-2

Запустите его из каталога, в котором находится POM.XML.

Сасирадж
источник
9
Проголосовали против, потому что install:install-fileцель не обязательно (не может?) Выполняться в проекте. Он используется для ручной установки артефакта в репозиторий.
Zoltán
Я пытаюсь загрузить zip-файл без Pom xml. проголосовали против
kazanaki