在VS Code中使用Metals开发Scala时,如何设置工作目录?
在VS Code的Metals中设置工作目录的方法
通过运行/调试配置添加JVM参数
Metals不支持直接在launch.json中配置cwd,但可以通过添加JVM系统参数-Duser.dir来指定工作目录:- 打开运行和调试面板(快捷键Ctrl+Shift+D)
- 找到Metals生成的目标运行/调试配置,点击编辑按钮(铅笔图标)
- 在配置的
"args"数组中加入"-Duser.dir=<你的目标目录路径>",可以使用VS Code内置变量(比如${workspaceFolder}表示当前工作区根目录)
示例配置片段:
{ "type": "scala", "name": "Run Main", "request": "launch", "mainClass": "com.example.Main", "args": ["-Duser.dir=${workspaceFolder}/src/main/resources"] }在构建工具中全局配置
如果使用sbt,可以在build.sbt中为运行任务设置默认工作目录,这样Metals会自动继承该配置:run / javaOptions += "-Duser.dir=" + baseDirectory.value / "target/workdir"用Mill的话,可在
build.sc中类似配置JVM参数,效果一致。调试场景的适配
调试时的配置逻辑和运行完全相同,只需在调试配置的"args"中加入-Duser.dir参数即可。如果需要基于当前文件动态设置路径,可使用${fileDirname}变量关联到当前打开文件的目录。
内容的提问来源于stack exchange,提问作者user3416742
相关产品推荐
相关产品推荐

