背景:

         在学习开源项目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初始化项目会指定作者的名称同时指定许可证的类型。