背景:
在学习开源项目go-admin的时候,看到作者采用了cobra命令行包的形式进行相关的命令行操作,所以对此技术很感兴趣,通过百度才知道,该包的使用非常的广泛,包括现在比较火的Kubernetes和Docker里面都涉及到该技术的使用。
Cobra项目的gitHub地址: https://github.com/spf13/cobra。
第一步开发前的环境搭建:
首先就是它类似于go,git等的命令,所以我们先安装一下它的命令行执行依赖包:https://github.com/spf13/cobra/cobra,
正常的操作就是,采用go get -v github.com/spf13/cobra/cobra但是会提示连接不上相关的服务器地址。
$GOPATH/src/golang.org/xgolang.org
git clone https://github.com/golang/text
git clone https://github.com/golang/sys
最后就是安装命令:
go install github.com/spf13/cobra/cobra
验证是否安装成功:
第二步cobra项目的初始化:(cobra就是一种框架)
创建文件夹,然后进入文件夹内部执行cobra init --pkg-name 项名称。 要应用在一个新建的空文件夹中,会自动在文件夹下建立一个生成好的框架。
步骤如下:
mkdir cobraTest
@W56-560298 MINGW64 /e/GITwork/ginWork/src (master)
$ cd cobraTest/
@W56-560298 MINGW64 /e/GITwork/ginWork/src/cobraTest (master)
$ ls
@W56-560298 MINGW64 /e/GITwork/ginWork/src/cobraTest (master)
$ cobra init --pkg-name cobraTest
Your Cobra application is ready at
E:GITworkginWorksrccobraTest
验证是否初始化成功:
注意:
最好的项目初始化就是纯粹针对空的文件夹,但是对于非空文件夹也是可以进行相关的初始化的,不过切记,切记,切记一定要注意非空文件夹中的原有的cmd子文件和main.go文件要修改名称,否则会直接被初始化后的文件所覆盖,后果很严重。
升级版的初始化cobra项目:(默认情况下,初始化的文件main.go中作者名为空并且License中的文件采用的是Apache)
cobra init --pkg-name --author 作者名 -l 使用的License(许可证)名称
cobra init --pkg-name cobraTest --author gcg -l MIT
上面的方式创建的cobra初始化项目会指定作者的名称同时指定许可证的类型。