bee 工具简介

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。

bee 工具安装

您可以通过如下的方式安装 bee 工具:

  1. go get github.com/beego/bee

安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。

bee 工具命令详解

new 命令

new 命令是新建一个 Web 项目,我们在命令行下执行 bee new <项目名> 就可以创建一个新的项目。但是注意该命令必须在 $GOPATH/src 下执行。最后会在 $GOPATH/src 相应目录下生成如下目录结构的项目:

  1. bee new myproject
  2. [INFO] Creating application...
  3. /gopath/src/myproject/
  4. /gopath/src/myproject/conf/
  5. /gopath/src/myproject/controllers/
  6. /gopath/src/myproject/models/
  7. /gopath/src/myproject/static/
  8. /gopath/src/myproject/static/js/
  9. /gopath/src/myproject/static/css/
  10. /gopath/src/myproject/static/img/
  11. /gopath/src/myproject/views/
  12. /gopath/src/myproject/conf/app.conf
  13. /gopath/src/myproject/controllers/default.go
  14. /gopath/src/myproject/views/index.tpl
  15. /gopath/src/myproject/main.go
  16. 13-11-25 09:50:39 [SUCC] New application successfully created!
  1. myproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── default.go
  6. ├── main.go
  7. ├── models
  8. ├── routers
  9. └── router.go
  10. ├── static
  11. ├── css
  12. ├── img
  13. └── js
  14. ├── tests
  15. └── default_test.go
  16. └── views
  17. └── index.tpl
  18. 8 directories, 4 files

api 命令

api 命令用来创建 API 应用的,执行命令之后如下所示:

  1. bee api apiproject
  2. create app folder: /gopath/src/apiproject
  3. create conf: /gopath/src/apiproject/conf
  4. create controllers: /gopath/src/apiproject/controllers
  5. create models: /gopath/src/apiproject/models
  6. create tests: /gopath/src/apiproject/tests
  7. create conf app.conf: /gopath/src/apiproject/conf/app.conf
  8. create controllers default.go: /gopath/src/apiproject/controllers/default.go
  9. create tests default.go: /gopath/src/apiproject/tests/default_test.go
  10. create models object.go: /gopath/src/apiproject/models/object.go
  11. create main.go: /gopath/src/apiproject/main.go
  1. apiproject
  2. ├── conf
  3. └── app.conf
  4. ├── controllers
  5. └── object.go
  6. └── user.go
  7. ├── docs
  8. └── doc.go
  9. ├── main.go
  10. ├── models
  11. └── object.go
  12. └── user.go
  13. ├── routers
  14. └── router.go
  15. └── tests
  16. └── default_test.go

run 命令

bee run 命令是监控 beego 的项目,通过 fsnotify监控文件系统。但是注意该命令必须在 $GOPATH/src/appname 下执行。

  1. bee run
  2. 13-11-25 09:53:04 [INFO] Uses 'myproject' as 'appname'
  3. 13-11-25 09:53:04 [INFO] Initializing watcher...
  4. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/controllers)
  5. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject/models)
  6. 13-11-25 09:53:04 [TRAC] Directory(/gopath/src/myproject)
  7. 13-11-25 09:53:04 [INFO] Start building...
  8. 13-11-25 09:53:16 [SUCC] Build was successful
  9. 13-11-25 09:53:16 [INFO] Restarting myproject ...
  10. 13-11-25 09:53:16 [INFO] ./myproject is running...

打开浏览器就可以看到效果 http://localhost:8080/
Bee 工具使用 - 图1

version 命令

动态获取 bee、beego 和 Go 的版本。

  1. $ bee version
  2. bee :1.2.2
  3. beego :1.4.2
  4. Go :go version go1.3.3 darwin/amd64

generate 命令

  1. bee generate scaffold [scaffoldname] [-fields=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"]
  2. The generate scaffold command will do a number of things for you.
  3. -fields: a list of table fields. Format: field:type, ...
  4. -driver: [mysql | postgres | sqlite], the default is mysql
  5. -conn: the connection string used by the driver, the default is root:@tcp(127.0.0.1:3306)/test
  6. example: bee generate scaffold post -fields="title:string,body:text"
  7. bee generate model [modelname] [-fields=""]
  8. generate RESTful model based on fields
  9. -fields: a list of table fields. Format: field:type, ...
  10. bee generate controller [controllerfile]
  11. generate RESTful controllers
  12. bee generate view [viewpath]
  13. generate CRUD view in viewpath
  14. bee generate migration [migrationfile] [-fields=""]
  15. generate migration file for making database schema update
  16. -fields: a list of table fields. Format: field:type, ...
  17. bee generate docs
  18. generate swagger doc file
  19. bee generate test [routerfile]
  20. generate testcase
  21. bee generate appcode [-tables=""] [-driver=mysql] [-conn="root:@tcp(127.0.0.1:3306)/test"] [-level=3]
  22. generate appcode based on an existing database
  23. -tables: a list of table names separated by ',', default is empty, indicating all tables
  24. -driver: [mysql | postgres | sqlite], the default is mysql
  25. -conn: the connection string used by the driver.
  26. default for mysql: root:@tcp(127.0.0.1:3306)/test
  27. default for postgres: postgres://postgres:postgres@127.0.0.1:5432/postgres
  28. -level: [1 | 2 | 3], 1 = models; 2 = models,controllers; 3 = models,controllers,router

pack 命令

pack 目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了:
Windows 服务器

  1. bee pack -be GOOS=windows

Linux 服务器

  1. bee pack -be GOOS=linux

bee 工具配置文件

在 bee 工具的源码目录下有一个 bee.json 文件,这个文件是针对 bee 工具的一些行为进行配置。该功能还未完全开发完成,不过其中的一些选项已经可以使用:

  • "version": 0:配置文件版本,用于对比是否发生不兼容的配置格式版本。
  • "go_install": false:如果您的包均使用完整的导入路径(例如:github.com/user/repo/subpkg),则可以启用该选项来进行 go install 操作,加快构建操作。
  • "watch_ext": []:用于监控其它类型的文件(默认只监控后缀为 .go 的文件)。
  • "dir_structure":{}:如果您的目录名与默认的 MVC 架构的不同,则可以使用该选项进行修改。
  • "cmd_args": []:如果您需要在每次启动时加入启动参数,则可以使用该选项。
  • "envs": []:如果您需要在每次启动时设置临时环境变量参数,则可以使用该选项。