问题引入
在使用Goland开发Golang应用时,我们在项目中采用了google/wire来做依赖管理,每次修改依赖关系后,都需要在wire.go目录下手动执行下wire命令来生成wire_gen.go文件。
而在我们的项目中,wire.go并没有在项目根目录
最终就不可避免的会产生如下操作:
cd cmd/server
wire
cd ../../
cd cmd/migration
wire
需要解决上述问题其实也很简单,我们可以其实通过定义makefile文件或自己写一个shell脚本来解决。
但如果我们想在IDE层面来处理该问题。首先想到的就是插件,但实际上Goland的插件市场中目前暂时并没有找到合适的插件。
ps:我起初想自行开发一款
Jetbrains插件,但研究了一个小时后,发现插件开发并不是很容易。主要是目前暂时只支持Java和Kotlin作为插件开发语言。
经过一番折腾,最终发现其实完全不需要插件,我们也能通过Jetbrains提供的External Tools功能实现我们的需求。
- 第一步,打开Goland 设置
Preferences | Tools | External Tools,并按下图的配置:

其中Name是子菜单名称,Group是根菜单名称,Program就是我们惨淡点击后执行的程序,$FileDir$是个变量,表示程序当前工作路径(当前文件所在目录)。
- 第二步 选中
wire.go文件点击右键,就可以看到我们刚刚添加的菜单按钮啦~

到这里,本文就结束了。相信大家也发现了,通过External Tools,我们可以创建非常多实用的快捷功能,快去试试吧~



评论(0)