首页 > 技术文章 > 介绍一款Go项目热编译工具-gowatch

silenceper 2020-01-13 12:36 原文

# 使用场景 在golang项目编写过程中,需要对项目不断的进行构建`go build`并调试以快速发现问题,而我们每次进行手动的进行`go build`又太重复,所以写了这么一个工具`gowatch`来实时的监听文件的改动并编译。 # 快速入门 ## 安装使用 ``` go get github.com/silenceper/gowatch ``` 安装完成之后,在main包目录下执行`gowatch`命令: ![gowatch](https://raw.githubusercontent.com/silenceper/gowatch/master/screenshot/gowatch.png) ## 高级用法 支持的命令行参数: - -o : 非必须,指定build的目标文件路径 - -p : 非必须,指定需要build的package(也可以是单个文件) - -args: 非必须,指定程序运行时参数,例如:-args='-host=:8080,-name=demo' - -v: 非必须,显示gowatch版本信息 例如: ``` gowatch -o ./bin/demo -p ./cmd/demo ``` gowatch同时也提供了配置文件的方式,支持更多的个性化的配置,默认当前目录下的gowatch.yaml配置文件: ``` # gowatch.yml 配置示例 # 当前目录执行下生成的可执行文件的名字,默认是当前目录名 appname: "test" # 指定编译后的目标文件目录 output: /bin/demo # 需要追加监听的文件名后缀,默认只有'.go'文件 watch_exts: - .yml # 需要监听的目录,默认只有当前目录 watch_paths: - ../pk # 在执行命令时,需要增加的其他参数 cmd_args: - arg1=val1 # 在构建命令时,需要增加的其他参数 build_args: - -race # 需要增加环境变量,默认已加载当前环境变量 envs: - a=b # 是否监听 ‘vendor’ 文件夹下的文件改变 vendor_watch: false # 不需要监听的目录名字 excluded_paths: - path # main 包路径,也可以是单个文件,多个文件使用逗号分隔 build_pkg: "" # build tags build_tags: "" # 是否禁止自动运行 disable_run: false ``` 项目地址:https://github.com/silenceper/gowatch >加入Golang兴趣小组,关注公众号“学点程序”,并回复“入群” > 关注"学点程序"公众号,了解更多干货内容 ![学点程序](https://silenceper.oss-cn-beijing.aliyuncs.com/qrcode/qr_code_study_program_430.jpg )

推荐阅读