【问题标题】:no goals specified exception when installing maven安装 maven 时没有指定目标异常
【发布时间】:2021-03-13 18:41:33
【问题描述】:

看起来这是设置 maven 的重复挑战,但我在这方面也有自己的挑战......!我是 maven 和 java 的新手,在此不胜感激!

这是我在 MacOS v10.15.7 上的当前设置

按照 maven 的建议,我首先定义我的 JAVA_HOME(在 OSX 中默认未设置)

cd ~
echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile
echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/openjdk-12.0.2.jdk/Contents/Home

echo $PATH
/Users/byc/anaconda3/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin

然后我继续下载 Maven 3.6.3 并在/Users/byc/Downloads/apache-maven-3.6.3 创建文件夹,运行以下命令

export PATH=/Users/byc/Downloads/apache-maven-3.6.3/bin:$PATH
mvn --verison
-bash: mvn: command not found

当我运行 mvn -e 时,我得到了以下信息。这是否意味着 Maven 没有正确绑定到 $PATH

mvn -e
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.059 s
[INFO] Finished at: 2020-12-01T19:03:43Z
[INFO] ------------------------------------------------------------------------
[ERROR] No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
org.apache.maven.lifecycle.NoGoalSpecifiedException: No goals have been specified for this build. You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy.
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:97)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 
[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 articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoGoalSpecifiedException

【问题讨论】:

  • 不,这意味着你没有告诉 Maven 任何事情,比如mvn compile
  • Maven 有一组特定的目标,您可以在每次执行时指定一个或多个目标。可用的目标可能会受到与生命周期中特定步骤相关联的“插件”的影响。最简单的目标是“干净”; mvn clean 从您的工作空间中删除特定类型的工件,这些工件可以在构建过程的后期下载或生成。

标签: java macos maven java-home


【解决方案1】:

几件事:

  1. 我不确定为什么 Maven 文档继续告诉人们设置JAVA_HOME。这是不必要的,前提是 javac(是的,javac,不知道为什么)在您的路径中(这通常意味着 java 也在您的路径中)。 The source code confirms it.
  2. 您将version 拼错为verison,这就是您收到-bash: mvn: command not found 的原因。
  3. 您指定了neither a Maven lifecycle phase nor a plugin goal,所以 Maven 不知道该怎么做。

【讨论】:

  • (最后请注意,/usr/libexec/java_home 是 macOS 上找出特定 JDK 安装的根目录的最佳方法。)
  • 唉,错别字!它现在已经启动并运行mvn -version. Apache Maven 3.6.3 Maven home: /Users/byc/Downloads/apache-maven-3.6.3 Java version: 12.0.2, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/openjdk-12.0.2.jdk/Contents/Home Default locale: en_GB, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"
  • 你对javac的观点很有趣...它有什么用?由于过去的安装,我确实有几个 JDK 正在运行。 /usr/libexec/java_home 已将我指向当前的 :)
  • @byc 我在没有任何信息的情况下猜测javac 而不是java 的测试是查看Maven 是否可以访问JDK 和JRE。我进一步推测这是出于历史的、不再相关的原因:也许maven-compiler-plugin 比现在更紧密地集成到 Maven 核心中,也许在遥远的过去的某个时候它需要掏空到javac。或者,你知道,错别字。
  • 这似乎不太可能,但我每次想使用 maven 时都需要运行export PATH=/Users/byc/Downloads/apache-maven-3.6.3/bin:$PATH 吗? mvn -v 昨天工作愉快,今天又见到老朋友mac:bin byc$ mvn -version -bash: mvn: command not found :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 2015-08-18
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多