vfox icon indicating copy to clipboard operation
vfox copied to clipboard

[BUG]: MacBook M1 Pro maven 使用 -g 设置全局无效,在当前终端窗口有效,新建终端窗口后失效

Open Simon-Wang-CN opened this issue 1 year ago • 11 comments

Version 0.2.6 OS macOS

Describe the bug 执行以下命令 vfox add maven/maven vfox install [email protected] vfox use -g maven 命令执行成功后,在当前终端窗口可以正常使用 mvn 命令,新建终端窗口后 mvn 命令失效

Simon-Wang-CN avatar Mar 22 '24 15:03 Simon-Wang-CN

安装 java、go 是可以的,全局配置正常生效,maven 不行

Simon-Wang-CN avatar Mar 22 '24 15:03 Simon-Wang-CN

贴一下截图

aooohan avatar Mar 25 '24 02:03 aooohan

当前使用情况

Simon-Wang-CN avatar Mar 25 '24 03:03 Simon-Wang-CN

没有复现出来.
issue140

安装 java、go 是可以的,全局配置正常生效,maven 不行

这可就太奇怪了.哈哈哈哈, 对vfox而言, 他们三个都是一样的.

你可以新开tab之后, 执行一下vfox activate zsh 看看path里有maven吗

aooohan avatar Mar 25 '24 03:03 aooohan

image path 中有的,mvn 命令还是不识别,很奇怪

Simon-Wang-CN avatar Mar 25 '24 03:03 Simon-Wang-CN

image 这是在原来的 tab 中执行 vfox activate zsh 的结果,path 中有两个 maven,可以正常识别 mvn 命令

Simon-Wang-CN avatar Mar 25 '24 03:03 Simon-Wang-CN

检查是否存在 ~/.tool-versions 文件,如果存在请移除。我发现是因为用户主目录下的文件覆盖掉了全局的设置(不清楚用户主目录下的.tool-versions是怎么生成的)

是否应该增加一个行为在 Record.Save 时过滤掉路径是用户主目录的SDK,因为如果存在主目录SDK配置,全局下的~/.version-fox/.tool-versions相同SDK会被覆盖掉。如果可以我能提一个pr

zhylmzr avatar Mar 26 '24 05:03 zhylmzr

image 是这个原因,而且 `~/.tool-versions` 文件中只有 go 的版本信息

Simon-Wang-CN avatar Mar 26 '24 06:03 Simon-Wang-CN

@zhylmzr

检查是否存在 ~/.tool-versions 文件,如果存在请移除。我发现是因为用户主目录下的文件覆盖掉了全局的设置(不清楚用户主目录下的.tool-versions是怎么生成的)

正常情况下, 使用vfox use -p 会在当前目录下生成.tool-versions文件.

是否应该增加一个行为在 Record.Save 时过滤掉路径是用户主目录的SDK,因为如果存在主目录SDK配置,全局下的~/.version-fox/.tool-versions相同SDK会被覆盖掉。如果可以我能提一个pr

应该不是这的问题, .tool-versions的优先级目前是: 当前目录下>临时目录>全局目录

是这个原因,而且 ~/.tool-versions 文件中只有 go 的版本信息

@jingbai-code 如果当前目录下.tool-versions只有go, 那不会影响你全局的maven的...

aooohan avatar Mar 26 '24 06:03 aooohan

主目录下只有go的环境却影响了maven是有点奇怪🤔,我今天是遇到同样的问题因为相同sdk被覆盖掉了。

我不记得我有过在主目录下使用 vfox use -p,一直都是使用全局sdk,所以很奇怪怎么会在主目录存在 .tool-versions 文件。

zhylmzr avatar Mar 26 '24 08:03 zhylmzr

这里详细列一下我遇到这个问题的情景

  • 有通过 brew 升级 vfox
  • 有升级插件以及卸载老旧 sdk

在设置新的sdk作为默认全局使用时,在新的终端下没有生效,报错的信息是命令没找到,因为新终端默认目录是主目录,刚好主目录下有 .tool-versions,里面存在被卸载的老的sdk,所以把主目录下的 .tool-versions 移除即可。

zhylmzr avatar Mar 26 '24 08:03 zhylmzr