Maven в 5-минутном выпуске

I; m следуйте Maven за 5 минут со следующим:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Я получил следующую ошибку:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.160s
[INFO] Finished at: Sat Dec 10 16:27:55 ICT 2011
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (
D:\experiment\maven). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following arti
cles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

Пожалуйста, помогите. Заранее благодарим за помощь.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

PS D:\experiment\maven> ping http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.2/maven-archetype-plugin-2.2.pom
Ping request could not find host http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.2/maven-archetype-plugin-2.2.pom. Please check the name and try again.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.869s
[INFO] Finished at: Sat Dec 10 19:03:37 ICT 2011
[INFO] Final Memory: 2M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (
D:\experiment\maven). Please verify you invoked Maven from the correct directory. -> [Help 1]
org.apache.maven.lifecycle.MissingProjectException: The goal you specified requires a project to exe
cute but there is no POM in this directory (D:\experiment\maven). Please verify you invoked Maven fr
om the correct directory.
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:89)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following arti
cles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException

Ответ 1

Я использую Windows 7 SP1.

У меня возникла проблема, потому что я запускал ее с помощью PowerShell.

Он отлично работает, когда я запускал его с помощью CMD.EXE.

Спасибо за помощь всем.

Ответ 2

Я столкнулся с той же проблемой, и похоже, что у нас есть аналогичная настройка

  • Windows 7
  • Powershell
  • HTTP proxy

вот что я должен сделать:

  • Оберните все внутренние кавычки "-D...", например.

    mvn archetype:generate "-DarchetypeGroupId=org.apache.maven.archetypes" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DgroupId=com.mycompany.app" "-DartifactId=my-app"
    
  • Убедитесь, что "HTTP_PROXY" правильно установлен в ваших переменных окружения (проверьте его, набрав "echo $Env:HTTP_PROXY")

Ответ 3

Во-первых, вы должны следовать рекомендациям сообщения об ошибке. Позвоните в Maven с дополнительными флагами, чтобы получить дополнительную информацию.

Во-вторых, вы должны убедиться, что ваше интернет-соединение работает из командной строки. Можете ли вы, например, загрузить http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.2/maven-archetype-plugin-2.2.pom из своего браузера? Если нет, Maven не сможет загрузить необходимые плагины, и поэтому нормальная загрузка, которая необходима до того, как ваш проект может быть создан, не будет выполнен. Проверьте, использует ли ваш браузер прокси-сервер, и вы не указали переменную среды HTTP_PROXY. Если это так, определите в оболочке, что вы используете переменную HTTP_PROXY по команде:

set HTTP_PROXY=http://<my.proxy.host>:<port>

с правильными значениями для my.proxy.host и port. Если это хорошо работает, определите переменную среды для системы, чтобы каждая открытая оболочка определяла эту переменную среды.

Пожалуйста, добавьте эту информацию на свой вопрос и извините за неправильный совет называть ping http://...., который не может работать.

Ответ 4

У меня была аналогичная ошибка и я попытался использовать двойные кавычки, чтобы обернуть все -D, и это сработало для меня..

Пример:

mvn archetype:create "-DarchetypeGroupId=org.springframework.ws" "-DarchetypeArtifactId=spring-ws-archetype" "-DarchetypeVersion=2.1.4.RELEASE" "-DgroupId=com.mycompany.hr" "-DartifactId=holidayService"

Ответ 5

Я не уверен, что вы запускаете "mvn compile" из каталога POM, и именно поэтому он просит POM.

Если это так, просто перейдите в каталог, в котором находится pom, а затем запустите "mvn install" или любые другие команды Maven.

Ответ 6

Мне потребовалось всего 75 минут, чтобы создать проект быстрого запуска Maven в Windows 10 с использованием PowerShell в пакетном режиме. Видимо, я допустил три разные ошибки.

Выполните следующие действия:

  • Предоставить все обязательные параметры или пакетный режим не будет работать. Это плохо описано в официальном учебнике Maven, но правильно зарегистрировано здесь:
    • -B для пакетного режима или -DinteractiveMode=false вместо
    • -DarchetypeGroupId=org.apache.maven.archetypes
    • -DarchetypeArtifactId=maven-archetype-quickstart
    • -DarchetypeVersion=1.1
    • -DgroupId=com.example
    • -DartifactId=app
    • -Dversion=1.0-SNAPSHOT
    • -Dpackage=com.example.project
  • В PowerShell вам нужно использовать двойные кавычки вокруг каждого параметра, например. "-DgroupId=com.example"
  • Не используйте разрывы строк в вашей команде archetype:generate

Полный пример:

mvn archetype:generate -B "-DarchetypeGroupId=org.apache.maven.archetypes" "-DarchetypeArtifactId=maven-archetype-quickstart" "-DarchetypeVersion=1.1" "-DgroupId=com.example" "-DartifactId=app" "-Dversion=1.0-SNAPSHOT" "-Dpackage=com.example.project"