前言
相信很多人在 Go 开发,以及其他语言开发时都会碰到,项目代码改动一个地方,就需要手动编译一次,我也是被这个问题困恼很久,直到我碰见了 go-zero-looklook
项目的作者。
安装
Go 安装
$ env GO111MODULE=on go get github.com/cortesi/modd/cmd/modd
Homebrew 安装
$ brew install modd
使用
在项目中新增 modd.conf
配置如下:
# captcha
app/captcha/cmd/rpc/** pkg/** {
prep: go build -o build/server/captcha-rpc -v app/captcha/cmd/rpc/captcha.go
daemon +sigkill: ./build/server/captcha-rpc -f app/captcha/cmd/rpc/etc/captcha-dev.yaml
}
app/captcha/cmd/api/** pkg/** {
prep: go build -o build/server/captcha-api -v app/captcha/cmd/api/captcha.go
daemon +sigkill: ./build/server/captcha-api -f app/captcha/cmd/api/etc/captcha-dev.yaml
}
# passport
app/passport/cmd/rpc/** pkg/** {
prep: go build -o build/server/passport-rpc -v app/passport/cmd/rpc/passport.go
daemon +sigkill: ./build/server/passport-rpc -f app/passport/cmd/rpc/etc/passport-dev.yaml
}
app/passport/cmd/api/** pkg/** {
prep: go build -o build/server/passport-api -v app/passport/cmd/api/passport.go
daemon +sigkill: ./build/server/passport-api -f app/passport/cmd/api/etc/passport-dev.yaml
}
启动
- 很简单,终端环境下就一个命令
modd
说明
app/captcha/cmd/rpc/** pkg/**
代表需要监控这两个目录下的改动prep
表示如何编译程序daemon +sigkill
表示程序如何杀死并启动
具体更多语法命令,请前往 github.com/cortesi/mod… 查看
结尾
这个真的很好用,跨项目,跨语言,尤其适合微服务开发,结合 Docker 容器镜像,打包到镜像里面,可以实现一个容器启动 N
个服务,无需污染宿主机。