必须手动同步修改 go.mod 中的 module 声明和所有 import 路径,否则编译报错、IDE 功能失效、CI 构建失败;改名后需运行 go mod tidy 校验路径有效性。

不能只用 Shift+F6 重命名项目根目录或包名,否则 import 路径会断,编译直接报错。
重命名项目目录本身
项目目录名和 Go 模块路径无关,但会影响开发体验和团队协作一致性。直接在项目视图里选中根目录 → Shift+F6 可改名,但注意:
- GoLand 不会自动更新
go.mod中的module声明,必须手动改; - IDE 缓存可能残留旧路径,改完后建议执行
File → Invalidate Caches and Restart; - 如果用了相对路径的脚本(如 Makefile、CI 配置),这些地方也得同步检查。
修改 go.mod 中的 module 名
go.mod 里的 module github.com/user/oldname 是整个项目的逻辑根路径,所有 import 都基于它。改名必须分两步走:
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 先用文本编辑器打开
go.mod,把module行改成新路径,比如module github.com/user/newname; - 再批量替换所有
import语句:用Ctrl+Shift+R(全局替换),搜索"github.com/user/oldname",替换成"github.com/user/newname"; - 别漏掉测试文件(
*_test.go)和internal子目录下的 import —— 它们一样要跟着变。
重命名内部包目录及对应 import 路径
包目录名(如 pkg/auth)决定了它的 import 路径("github.com/user/newname/pkg/auth"),但 Go 不允许仅靠 Shift+F6 改目录名来同步 import。实际操作是:
- 先用系统方式重命名目录(右键 →
Refactor → Move或直接拖拽改名),GoLand 会弹出“Rename directory”对话框; - 勾选
Search for references和Rename package declaration(如果有package auth这类声明); - 关键点:它**不会**自动改其他文件里对这个包的
import,必须配合Ctrl+Shift+R全局搜"oldpath"替换为"newpath"; - 如果包被其他模块引用(比如发布为独立库),改名等于破坏兼容性,需发新版本并通知下游。
为什么不能跳过 go.mod 和 import 同步?
Go 的 import 路径是逻辑地址,不是文件路径。你把 pkg/auth 目录改成 pkg/userauth,但代码里还写 import "github.com/user/newname/pkg/auth",Go 就找不到包 —— 报错信息通常是:cannot find package "github.com/user/newname/pkg/auth"。更隐蔽的问题是:
- 某些 IDE 功能(如跳转定义、Find Usages)会失效;
- CI 构建时
go build失败,因为 GOPATH 或 module 模式下路径不匹配; - 如果用了
replace或require指向本地路径,那些行也得手动更新。
最易被忽略的是:改完 go.mod 和所有 import 后,务必运行 go mod tidy,让 Go 自动清理冗余依赖并校验路径有效性。漏这一步,有时表面能编译,但 go test ./... 会突然失败。

















