前言:

Golang服务器热重载、热重启、热升级、热更新~

作用——实时监听项目的代码文件,在代码发生变化之后会重新编译执行,这样就可以提高开发的效率。

一、使用Air进行热重载

## 安装

有好几种安装方法:

1. ### 经典安装

2. ### macOS, Linux, Windows

3. ### docker

例子:

## 使用

1. 进入你的项目目录: `cd /path/to/your_project`

2. 然后使用命令:`air -c .air.conf`

.air.conf 是一个配置文件,这个配置文件的示例可以在这里找到:[air_example.toml],它是一个 toml 格式文件。

具体操作:

1.新建文件 .air.conf

2.把 [air_example.toml]中的内容复制到 .air.conf 文件里,然后根据你的需求修改配置内容

3.如果你的文件名跟我一样是 .air.conf ,那么直接执行 air 命令就可以了,如果不是,那么运行命令:air -c your_file_name

二、使用gowatch进行热重载

Go 程序热编译工具,通过监听当前目录下的相关文件变动,进行实时编译。

##安装

##使用

安装完成后可以直接使用 gowatch 命令,命令行参数如下:

  • -o : 非必须,指定 build 的目标文件路径
  • -p : 非必须,指定需要 build 的 package(也可以是单个文件)
  • -args: 非必须,指定程序运行时参数,例如:-args=’-host=:8080,-name=demo’
  • -v: 非必须,显示 gowatch 版本信息
gowatch.yml
gowatchgowatch.yml

三、使用fresh进行热重载

Fresh 是一个命令行工具,每次保存 Go 或模版文件时,该工具都会生成或重新启动 Web 应用程序。Fresh 将监视文件事件,并且每次创建 / 修改 / 删除文件时,Fresh 都会生成并重新启动应用程序。如果 go build 返回错误,它会将记录在 tmp 文件夹中。

##安装

##使用


fresh

# 项目目录gin-blog下执行

➜ fresh

gowatch

# 项目目录gin-blog-apis下执行

➜ go build # 会生成一个gin-blog可执行文件

➜ gowatch gin-blog

以上不管哪一种,在安装完执行fresh或者gowatch时,会报commond not foud错误,需要将命令添加到环境变量中,即可使用。小编这里采用的是添加全部变量中。(以后创建新的项目,不需要再次go get http://github.com/silenceper/gowatch 直接在项目下使用即可)

➜ sduo vim ~/.zshrc

➜ export PATH=${PATH}:/Users/cc/gopath/bin #写到~/.zshrc文件中 /Users/cc/gopath为你的gopath路径

➜ source ~/.zshrc