制冷设备东莞网站建设无屏蔽搜索引擎
一、GO 环境配置
从 Go 1.11 开始,Go 引入了模块(Modules)的概念,允许你在任何位置创建和管理 Go 项目,而不需要将它们放在 $GOPATH/src 下。Go Modules 使用 go.mod 文件来管理依赖项和版本信息。
- 查看GOPATH位置
D:\project_go\demo_beego>echo %GOPATH%
D:\project_go
- 区分下载安装指令
go get:主要用于下载和管理依赖库,并不会生成可执行文件。
go install:用于编译并安装可执行文件到 $GOPATH/bin 目录中。注意编译并安装可执行文件在 %GOPATH%/bin, 下载的第三方依赖库会在 %GOPATH%/pkg
二、bee 的操作
- 可以在任意位置创建一个demo_beego文件夹,然后在文件夹内部执行 go mod init demo_beego 生成一个go.mod 文件
- 在 demo_beego 文件夹下通过 go install 安装 bee 工具
D:\project_go\demo_beego>go install github.com/beego/bee/v2@latest
go: downloading github.com/beego/bee/v2 v2.3.0
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/go-delve/delve v1.20.2
...
go: downloading github.com/cilium/ebpf v0.7.0
go: downloading golang.org/x/net v0.23.0
go: downloading golang.org/x/mod v0.8.0
go: downloading github.com/rivo/uniseg v0.2.0
- 安装成功后查看 bee 指令,若查找不到则把 %GOPATH%/bin 设置到系统变量中
bee api 命令用于创建一个基于 Beego 框架的 API 应用程序。这种应用程序通常专注于提供 RESTful API 服务,适合构建后端服务
bee new 命令用于创建一个完整的 Beego 应用程序。这种应用程序不仅包括 API 功能,还可能包含视图(HTML 页面)、静态资源等,适合构建全栈 Web 应用
D:\project_go\demo_beego>bee
2025/02/19 14:44:17.084 [D] init global config instance failed. If you do not use this, just ignore it. open conf/app.conf: The system cannot find the path specified.
2025/02/19 14:44:17 INFO ▶ 0001 Getting bee latest version...
2025/02/19 14:44:17 INFO ▶ 0002 Your bee are up to date
Bee is a Fast and Flexible tool for managing your Beego Web Application.You are using bee for beego v2.x. If you are working on beego v1.x, please downgrade version to bee v1.12.0USAGEbee command [arguments]AVAILABLE COMMANDSdev Commands which used to help to develop beego and beeupdate Update Beeversion Prints the current Bee versionbale Transforms non-Go files to Go source filesfix Fixes your application by making it compatible with newer versions of Beegodockerize Generates a Dockerfile and docker-compose.yaml for your Beego applicationmigrate Runs database migrationsnew Creates a Beego applicationpack Compresses a Beego application into a single filers Run customized scriptsserver serving static content over HTTP on portrun Run the application by starting a local development serverpro Source code generatorapi Creates a Beego API applicationgenerate Source code generatorhprose Creates an RPC application based on Hprose and Beego frameworksdlv Start a debugging session using DelveUse bee help [command] for more information about a command.
- 通过 bee new 创建项目
D:\project_go\demo_beego>bee new gotest1
2025/02/19 14:45:27.270 [D] init global config instance failed. If you do not use this, just ignore it. open conf/app.conf: The system cannot find the path specified.
2025/02/19 14:45:27 INFO ▶ 0001 Generate new project support go modules.
2025/02/19 14:45:27 INFO ▶ 0002 Creating application...create D:\project_go\demo_beego\gotest1\go.modcreate D:\project_go\demo_beego\gotest1\create D:\project_go\demo_beego\gotest1\conf\create D:\project_go\demo_beego\gotest1\controllers\create D:\project_go\demo_beego\gotest1\models\create D:\project_go\demo_beego\gotest1\routers\create D:\project_go\demo_beego\gotest1\tests\create D:\project_go\demo_beego\gotest1\static\create D:\project_go\demo_beego\gotest1\static\js\create D:\project_go\demo_beego\gotest1\static\css\create D:\project_go\demo_beego\gotest1\static\img\create D:\project_go\demo_beego\gotest1\views\create D:\project_go\demo_beego\gotest1\conf\app.confcreate D:\project_go\demo_beego\gotest1\controllers\default.gocreate D:\project_go\demo_beego\gotest1\views\index.tplcreate D:\project_go\demo_beego\gotest1\routers\router.gocreate D:\project_go\demo_beego\gotest1\tests\default_test.gocreate D:\project_go\demo_beego\gotest1\main.go
2025/02/19 14:45:27 SUCCESS ▶ 0003 New application successfully created!
- 看到 new application successfully created 表示工程创建成功,打开工程可以看到整个工程的目录文件夹结构如下
myproject
├── conf
│ └── app.conf
├── controllers
│ └── default.go
├── main.go
├── models
├── routers
│ └── router.go
├── static
│ ├── css
│ ├── img
│ └── js
├── tests
│ └── default_test.go
└── views└── index.tpl
- 如果这时候直接执行 bee run 运行项目,可能会碰到依赖项不存在的问题,如下:
(base) PS D:\project_go\demo_beego\gotest1> bee run
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v2.3.0
2025/02/19 15:33:00 WARN ▶ 0001 Running application outside of GOPATH
2025/02/19 15:33:00 INFO ▶ 0002 Using 'gotest1' as 'appname'
2025/02/19 15:33:00 INFO ▶ 0003 Initializing watcher...
main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web (imported by gotest1); to add:go get gotest1
2025/02/19 15:33:00 ERROR ▶ 0004 Failed to build the application: main.go:5:2: missing go.sum entry for module providing package github.com/beego/beego/v2/server/web (imported by gotest1); to add:go get gotest1
- 这时就要执行命令 go mod tidy ,解决依赖问题
go mod tidy 用于管理 Go Modules 项目的依赖关系,确保所有需要的依赖都被正确添加,未使用的依赖被移除,并且 go.mod 和 go.sum 文件保持最新。
- 等依赖下载完成后,再次执行 bee run 或者 go run main.go,成功的话打开网页http://:8080 即可看到如下内容
(base) PS D:\project_go\demo_beego\gotest1> bee run
______
| ___ \
| |_/ / ___ ___
| ___ \ / _ \ / _ \
| |_/ /| __/| __/
\____/ \___| \___| v2.3.0
2025/02/19 15:37:52 WARN ▶ 0001 Running application outside of GOPATH
2025/02/19 15:37:52 INFO ▶ 0002 Using 'gotest1' as 'appname'
2025/02/19 15:37:52 INFO ▶ 0003 Initializing watcher...
google.golang.org/protobuf/internal/flags
......
2025/02/19 15:38:05 SUCCESS ▶ 0004 Built Successfully!
2025/02/19 15:38:05 INFO ▶ 0005 Restarting 'gotest1.exe'...
2025/02/19 15:38:05 SUCCESS ▶ 0006 './gotest1.exe' is running...
2025/02/19 15:38:06.696 [I] [server.go:281] http server Running on http://:8080
三、bee run 与 go run 的区别
特性 | go run | bee run |
适用范围 | 适用于任何 Go 项目 | 专门用于 Beego 项目 |
编译方式 | 每次运行时临时编译 | 编译并监视文件变化,支持热重载 |
自动重启 | 不支持 | 支持 |
文件监视 | 不支持 | 支持(Go 文件、模板文件、配置文件等) |
开发效率 | 较低(需要手动重启) | 高(自动重启和热重载) |
命令用途 | 快速测试和调试单个或少量 Go 文件 | 开发和调试 Beego 应用程序 |