当前位置: 首页 > article >正文

Go 之 Windows下 Beego 项目的搭建

一、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.0
    
    USAGE
        bee command [arguments]
    
    AVAILABLE COMMANDS
    
        dev         Commands which used to help to develop beego and bee
        update      Update Bee
        version     Prints the current Bee version
        bale        Transforms non-Go files to Go source files
        fix         Fixes your application by making it compatible with newer versions of Beego
        dockerize   Generates a Dockerfile and docker-compose.yaml for your Beego application
        migrate     Runs database migrations
        new         Creates a Beego application
        pack        Compresses a Beego application into a single file
        rs          Run customized scripts
        server      serving static content over HTTP on port
        run         Run the application by starting a local development server
        pro         Source code generator
        api         Creates a Beego API application
        generate    Source code generator
        hprose      Creates an RPC application based on Hprose and Beego frameworks
        dlv         Start a debugging session using Delve
    
    Use 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.mod
            create   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.conf
            create   D:\project_go\demo_beego\gotest1\controllers\default.go
            create   D:\project_go\demo_beego\gotest1\views\index.tpl
            create   D:\project_go\demo_beego\gotest1\routers\router.go
            create   D:\project_go\demo_beego\gotest1\tests\default_test.go
            create   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 应用程序


    http://www.kler.cn/a/555013.html

    相关文章:

  • TikTok账户安全指南:如何取消两步验证?
  • GO大模型应用开发框架-
  • 掌握 ElasticSearch 四种match查询的原理与应用
  • 无人机遥感技术:从植被监测到生理参数反演的进阶之路
  • uniapp 安卓端 使用axios 和 renderjs 上传 FormData 参数
  • 【个人总结】9. 通讯协议、物联网、DSP及FatFS文件系统 工作三年的嵌入式常见知识点梳理及开发技术要点(欢迎指正、补充)
  • 【C++】优先级队列宝藏岛
  • 关于databean.toString()为空的问题
  • 【新人系列】Golang 入门(一):基础介绍
  • 分布式数据库:架构演进、核心挑战与行业落地实践
  • SpringCloud面试题----服务注册和发现是什么意思?Spring Cloud如何实现
  • 推荐一款AI大模型托管平台-OpenWebUI
  • Debezium 与 Apache Kafka 的集成方式
  • EasyPoi系列之通用导入接口设计
  • 如何用ClassFinal加密JAR保护知识产权!
  • Spring中事务的传播行为方式
  • 如何看nginx.conf文件?
  • vue3学习1
  • ubuntu 执行 sudo apt-get update 报错
  • Spring扩展点实战-动态线程池