【发布时间】:2022-11-11 15:52:14
【问题描述】:
通过 .sdkmanenv 文件为项目目录设置 Java 版本后,Java 版本只有在导航到根目录时才会更新。
这只是预期的行为吗? .sdkmanrc 文件是否需要传播到所有子目录?
例子:
~ % mkdir root_dir
~ % cd root_dir
root_dir % mkdir sub_dir
root_dir % sdk env init
.sdkmanrc created.
root_dir % cat .sdkmanrc
# Enable auto-env through the sdkman_auto_env
config
# Add key=value pairs of SDKs to use below
java=8.0.345-tem
root_dir % sed -i"" -e 's/8.0.345-tem/11.0.16-tem/' .sdkmanrc
root_dir % cat .sdkmanrc
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=11.0.16-tem
root_dir % cd ..
~ % cd root_dir/sub_dir
sub_dir % cd ..
Using java version 11.0.16-tem in this shell.
root_dir % cd ..
Restored java version to 8.0.345-tem (default)
作为参考,我分别使用以下版本的 sdkman 和 macOS。
% sdk version
SDKMAN 5.16.0
#macOS version
% sw_vers -productVersion
12.5.1
另外,我通过“sdk config”设置了“sdkman_auto_env=true”
% grep sdkman_auto_env .sdkman/etc/config
sdkman_auto_env=true
【问题讨论】: