绝大多数Go项目必须选Directory,因其执行go run .可正确解析import路径和go.mod依赖;File模式仅适用于无模块、无外部import的单文件脚本。

Run kind 选 Directory 还是 File?
绝大多数 Go 项目必须选 Directory,否则 go run 会找不到依赖或报 no Go files in current directory。因为 File 模式等价于执行 go run main.go,它不解析 import 路径、不读 go.mod,只认当前文件——这在模块化项目里基本不可用。
Directory 模式才真正执行 go run .,能正确加载整个模块树。唯一适用 File 的场景是单文件脚本(无 go.mod、无外部 import),但这种项目极少。
- 选
Directory后,Directory字段必须填到含main.go的最小子目录(如./cmd/api),不能填项目根目录——否则多main包冲突 - 如果项目有多个
main(如cmd/server和cmd/cli),每个都要建独立配置,Directory分别指向对应路径
Working directory 设错会导致 open config.yaml: no such file
Go 程序里用相对路径读配置(如 os.Open("config.yaml"))时,工作目录决定路径解析起点。Goland 默认把 Working directory 设为项目根,但你的 config.yaml 很可能在 cmd/api/ 下。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 推荐填
$ProjectFileDir$/cmd/api(绝对路径,稳定) - 调试不同
main.go时可填$FileDir$(动态取当前文件所在目录) - 留空 = 项目根目录,90% 情况下不是你想要的
Program arguments 和环境变量要分开配
Program arguments 是传给 Go 程序本身的命令行参数,比如 --port=8081 --env=staging;而环境变量(如 LOG_LEVEL=debug、GOROOT)必须进 Environment variables 编辑框单独加,不能塞进参数栏。
-
Program arguments中值含空格需用单引号,如'--name=prod server' - 环境变量里必须显式补全
PATH,否则exec: "jq": executable file not found in $PATH - 勾选
Include system environment variables,否则HOME、USER会丢失
Build after / Run after build 别设反了
默认勾选 Build after + Run after build,结果是:改完代码 → 自动构建 → 自动运行 → 控制台输出。但多数 Go 开发者实际要的是“改完就跑”,不需要生成二进制文件。
- 取消勾选
Build after(跳过构建阶段) - 保留
Run after build(它此时实际触发的是go run) - 勾选
Emulate terminal in output console,否则fmt.Scanln类交互逻辑会卡住
临时配置图标是半透明的,永久配置才不丢。每次点绿色三角前,先看右上角下拉菜单里是不是你刚配好的那个名字——名字不对,八成还在用默认临时配置,所有设置都白搭。

















