但在终端中,我可以看到一个Maven版本:
11:58 $ mvn --version
Apache Maven 3.8.4 (9b656c72d54e5bacbed989b64718c159fe39b537)
Maven home: /home/stephane/.asdf/installs/maven/3.8.4
Java version: 15.0.2, vendor: AdoptOpenJDK, runtime: /home/stephane/.asdf/installs/java/adoptopenjdk-15.0.2+7
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.4.0-91-generic", arch: "amd64", family: "unix"
我正在使用asdf工具:
12:07 $ cat .tool-versions
java adoptopenjdk-15.0.2+7
nodejs 12.13.1
tflint 0.28.1
terraform-validator 3.1.3
packer 1.7.2
terraform 0.15.3
adr-tools 3.0.0
pre-commit 1.21.0
maven 3.8.4
加载项目时,Kotlin控制台底部的“输出”窗格显示内容:
Dec 18, 2021 12:06:26 PM org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError
SEVERE: Internal error: java.lang.IllegalArgumentException: Unable to find the 'mvn' command
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Unable to find the 'mvn' command
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: Unable to find the 'mvn' command
at org.javacs.kt.classpath.MavenClassPathResolverKt$mvnCommand$2.invoke(MavenClassPathResolver.kt:129)
at org.javacs.kt.classpath.MavenClassPathResolverKt$mvnCommand$2.invoke(MavenClassPathResolver.kt:128)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.javacs.kt.classpath.MavenClassPathResolverKt.getMvnCommand(MavenClassPathResolver.kt:128)
at org.javacs.kt.classpath.MavenClassPathResolverKt.generateMavenDependencyList(MavenClassPathResolver.kt:106)
at org.javacs.kt.classpath.MavenClassPathResolverKt.access$generateMavenDependencyList(MavenClassPathResolver.kt:1)
at org.javacs.kt.classpath.MavenClassPathResolver.getClasspathWithSources(MavenClassPathResolver.kt:37)
at org.javacs.kt.classpath.UnionClassPathResolver.<init>(ClassPathResolver.kt:57)
at org.javacs.kt.classpath.ClassPathResolverKt.plus(ClassPathResolver.kt:45)
at org.javacs.kt.classpath.ClassPathResolverKt.getJoined(ClassPathResolver.kt:40)
at org.javacs.kt.classpath.DefaultClassPathResolverKt.defaultClassPathResolver(DefaultClassPathResolver.kt:11)
at org.javacs.kt.CompilerClassPath.refresh(CompilerClassPath.kt:37)
at org.javacs.kt.CompilerClassPath.refresh$default(CompilerClassPath.kt:31)
at org.javacs.kt.CompilerClassPath.addWorkspaceRoot(CompilerClassPath.kt:98)
at org.javacs.kt.KotlinLanguageServer$initialize$1.invoke(KotlinLanguageServer.kt:117)
at org.javacs.kt.KotlinLanguageServer$initialize$1.invoke(KotlinLanguageServer.kt:71)
at org.javacs.kt.util.AsyncExecutor.compute$lambda-2(AsyncExecutor.kt:19)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
... 3 more
[Error - 11:51:28 AM] Starting client failed
Message: Internal error.
Code: -32603
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: Unable to find the 'mvn' command
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1702)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: Unable to find the 'mvn' command
at org.javacs.kt.classpath.MavenClassPathResolverKt$mvnCommand$2.invoke(MavenClassPathResolver.kt:129)
at org.javacs.kt.classpath.MavenClassPathResolverKt$mvnCommand$2.invoke(MavenClassPathResolver.kt:128)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at org.javacs.kt.classpath.MavenClassPathResolverKt.getMvnCommand(MavenClassPathResolver.kt:128)
at org.javacs.kt.classpath.MavenClassPathResolverKt.generateMavenDependencyList(MavenClassPathResolver.kt:106)
at org.javacs.kt.classpath.MavenClassPathResolverKt.access$generateMavenDependencyList(MavenClassPathResolver.kt:1)
at org.javacs.kt.classpath.MavenClassPathResolver.getClasspathWithSources(MavenClassPathResolver.kt:37)
at org.javacs.kt.classpath.UnionClassPathResolver.<init>(ClassPathResolver.kt:57)
at org.javacs.kt.classpath.ClassPathResolverKt.plus(ClassPathResolver.kt:45)
at org.javacs.kt.classpath.ClassPathResolverKt.getJoined(ClassPathResolver.kt:40)
at org.javacs.kt.classpath.DefaultClassPathResolverKt.defaultClassPathResolver(DefaultClassPathResolver.kt:11)
at org.javacs.kt.CompilerClassPath.refresh(CompilerClassPath.kt:37)
at org.javacs.kt.CompilerClassPath.refresh$default(CompilerClassPath.kt:31)
at org.javacs.kt.CompilerClassPath.addWorkspaceRoot(CompilerClassPath.kt:98)
at org.javacs.kt.KotlinLanguageServer$initialize$1.invoke(KotlinLanguageServer.kt:117)
at org.javacs.kt.KotlinLanguageServer$initialize$1.invoke(KotlinLanguageServer.kt:71)
at org.javacs.kt.util.AsyncExecutor.compute$lambda-2(AsyncExecutor.kt:19)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
... 3 more
扩展日志显示:
[2021-12-18 11:51:28.974] [exthost] [error] Activating extension fwcd.kotlin failed due to an error:
[2021-12-18 11:51:28.975] [exthost] [error] Error: Internal error.
at /home/stephane/.vscode/extensions/fwcd.kotlin-0.2.23/dist/extension.js:2:815204
at /home/stephane/.vscode/extensions/fwcd.kotlin-0.2.23/dist/extension.js:2:815498
at Immediate.<anonymous> (/home/stephane/.vscode/extensions/fwcd.kotlin-0.2.23/dist/extension.js:2:815863)
at processImmediate (internal/timers.js:461:21)
它是一个Gradle主项目,项目根目录下有一个build.xml
文件,还有Gradle子项目和Maven子项目。
子项目中有许多build.xml
pom.xml
gradlew
gradlew.bat
文件。
发布:
VSCode 1.63.2
Extensions:
Language Support for Java v1.2.0
Kotlin v0.2.23
1条答案
按热度按时间xienkqul1#
在Ubuntu 20.0上,我也遇到了同样的问题,这是由于安装Maven引起的。
mvn
在VSCode终端中运行,但分机未找到。我还尝试了另一个Stack Overflow答案:set maven extension settings in the user's settings.json但这一个仅适用于您可以在“Explorer”(VSCode的文件视图)内的“Maven”子部分中触发的命令。
对于Ubuntu,Maven需要从网站手动下载,因为Ubuntu APT包太旧了。
我的错误是编辑了
.bashrc
脚本中的PATH变量,该变量仅在shell环境中可见。看起来这个扩展不能在shell环境中运行命令。当您为Ubuntu上的所有用户安装了Maven后,您可以在
/etc/environment
中编辑PATH变量。如果它只安装在本地-在我的例子中它位于~/apache-maven/bin
中-你可以通过将maven的目录路径-在我的例子中是$HOME/apache-maven/bin
-添加到PATH中来将目录添加到~/.profile
(或~/.pam_environment
)中的PATH变量中。这对我很有效。