Go环境必须启用Go Modules(GO111MODULE=on),项目需有go.mod文件;必须安装Git和hg;revel CLI须用go install安装;app.secret和http.port不可使用默认值。

Go 环境必须启用 Go Modules
Revel 当前主流版本(≥0.25)默认依赖 Go Modules,GO111MODULE 必须为 on 或空值,不能是 off。执行 go env GO111MODULE 可确认;若返回 off,需在 shell 配置中添加 export GO111MODULE=on 并重载。
不启用 Modules 会导致 revel run 找不到依赖、报错 cannot find module providing package github.com/revel/revel,即使 go get 过也无法识别。
- 项目根目录下必须存在
go.mod文件(可通过go mod init your/app初始化) - 旧式
GOPATH/src路径布局非必需,~/code/go/myapp这类平级路径完全可用 - 若仍提示 “not found in GOPATH”,优先检查
revelCLI 是否为新版:运行revel version,低于 v0.25 建议升级
Git 和 hg(Mercurial)都得装好
Revel 早期版本(如 v0.19)直接依赖 code.google.com/p/go.net/websocket,该包托管在 Google Code(已关闭),只能通过 hg 获取。即使当前用的是新版本,某些遗留驱动或插件仍可能触发 hg 调用。
只装 Git 不行,go get 过程中遇到 unknown revision 或 hg not found 错误,基本就是 hg 缺失。
- macOS:用
brew install mercurial - Ubuntu/Debian:
sudo apt install mercurial - Windows:下载官方安装包(https://www.mercurial-scm.org/download),勾选“Add to PATH”
- 验证:
hg --version应正常输出,且hg命令可在任意目录执行
revel CLI 工具必须用 go install 安装
别再用老教程里的 go build -o bin/revel.exe ...,那会生成位置绑定的二进制,且易漏掉依赖。正确方式是:
go install github.com/revel/cmd/revel@latest
安装后 revel 命令全局可用,且能自动适配当前 Go 模块环境。若执行 revel help 报 command not found,说明 $GOPATH/bin(或 $GOBIN)未加入 PATH。
- 检查
go env GOPATH和go env GOBIN,确认对应目录已加到PATH - Windows 用户注意:PowerShell 和 CMD 的
PATH配置可能不同,建议统一用 PowerShell 测试 - Mac/Linux 用户可运行
echo $PATH | grep -q "$(go env GOPATH)/bin"快速验证
敏感配置项不能留默认值
哪怕只是本地跑通,conf/app.conf 里两个字段也必须改,否则后续调试会莫名其妙失败:
-
app.secret:不能为空,不能是CHANGE-ME-TO-SOMETHING-ELSE这类示例值;会话签名失效,c.Session.Set()写入后读不出 -
http.port:默认9000,若被占用,revel run直接退出且不报具体错误;建议设为8080或3000,并用lsof -i :8080(Mac/Linux)或netstat -ano | findstr :8080(Windows)预检
这两项看着小,但一旦忽略,你会花半小时查“为什么页面空白”“为什么登录态不保持”,其实只是配置没动。











