VS 代码显示“mvn”未被识别为内部或外部命令

问题描述 投票:0回答:5

我正在尝试使用 VS Code 创建一个 Maven 项目,但是当我运行命令时它显示:

'mvn' is not recognized as an internal or external command,operable program or batch file.

但是

mvn -version
正在命令提示符下运行

用户的环境变量:

  • MAVEN_JOME : C:\apache-maven-3.6.1
    ,
  • M2_HOME : C:\apache-maven-3.6.1
    ,
  • JAVA_HOME : C:\Program Files\Java\jdk1.8.0_212\jre

系统变量

path
对于 maven 和 java 分别设置为
C:\apache-maven-3.6.1\bin
C:\Program Files\Java\jdk1.8.0_212\bin

我运行来创建项目的命令是:

mvn archetype:generate -DgroupId=com.cs.test-project -DartifactId=test-project -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
命令参考

以及 VS 代码 命令参考

在命令提示符中运行相同的命令,并在桌面上成功创建项目。

java maven visual-studio-code
5个回答
5
投票

我通过简单地重新启动 VSCode 解决了这个问题,因为我在 VSCode 运行时设置了 PATH 变量,因此更改不会反映到 VSCode 集成终端,直到我重新启动它。


4
投票

这有点违反直觉,因为路径必须指向实际的 mvn 命令,而不是 M2_PATH 文件夹。此外,一旦正确指向,如果您的环境在 JAVA_HOME 中缺少正确的 jdk,将会显示一个新错误。该错误是由maven 引发的。 Maven 插件有点愚蠢,因为它会忽略在 settings.json (java.home 或/和 java.configuration.runtimes 属性)中配置的默认 JDK,并且很乐意不为 Maven 设置 java。你必须专门为 Maven 插件配置它,如下所示:

"maven.executable.path": "c:\\apache-maven-3.8.1\\bin\\mvn",
"maven.terminal.customEnv": [{
        "environmentVariable": "JAVA_HOME",                
        "value": "c:\\openjdk-1.8.0_232-redhat",
}]

当然,两个路径都应指向您环境中正确的文件夹/文件。


1
投票

2022 年 10 月 25 日星期二,在尝试解决同样的问题时,我浏览了所有这些以前的 Windows 解决方案,最后不得不求助于官方安装文档:

安装 Apache Maven

解压download并找到bin目录,然后将该目录位置手动添加到我的:系统属性>高级>环境变量>“路径”

为了更好的测量,请重新启动计算机。


0
投票

我修复的方法是将 Vs Code 设置中的执行路径从 CMD 更改为 Powershell。

打开

settings -> features -> terminal

windows exec
路径从 cmd 更改为您拥有 PowerShell 的位置。

例如:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Windows exec setting


0
投票

我使用的是Ubuntu 20.0。

在我的例子中,我手动将 Maven 二进制目录的路径添加到

$PATH
变量中。我不小心只将其添加到 shell 中的环境变量中,而不是添加到用户会话中。

还要确保您使用的是可以从 Maven 网站下载的官方二进制文件,而不是 Ubuntu APT 软件包,因为那个版本太旧了,不适合我。

假设 Maven 可执行文件已存储在

~/apache-maven/bin
中。然后您可以通过添加
~/.profile
来编辑
export PATH+=":$HOME/apache-maven/bin"

重新启动计算机,然后,当您登录到您的个人资料时,程序和 VSCode 应该可以看到

mvn

© www.soinside.com 2019 - 2024. All rights reserved.