GOP是一个专为在GOPATH之外的Go应用开发的管理工具。当然他肯定不支持 GoGet 了。GOP会将所有的依赖项拷贝到 src/vedor 目录下,应用本身的源代码也在 src 下。
一个通常的使用过程如下:
git cloe xxx@mydata.com:bac/aaa.gitcd aaagop esure -ggop buildgop test特性GOPATH兼容,工程本身作为GOPATH
多编译目标支持
将您的工程放到全局GOPATH之外
安装情确保您能正常运行Go命令,GOP将依赖Go命令编译和测试
go get github.com/luy/gop工程目录结构工程目录结构示例如下:
<project root>├── gop.yml├── bi├── doc└── src ├── mai │ └── mai.go ├── models │ └── models.go ├── routes │ └── routes.go └── vedor └── github.com ├── go-xorm │ ├── builder │ ├── core │ └── xorm └── luy ├── log └── tago可以看出主文件默认放在src/mai下可以自动识别,当然也可以在Gop.yml中指定
Gop.yml工程配置文件,必须存在并且放在和src平级。如果你没有定义任何目标,默认的目标将是src/mai,目标名是工程名。
targets:- ame: myproject1 dir: mai assets: - templates - public - cofig.ii - key.pem - cert.pem- ame: myproject2 dir: web assets: - templates - public - cofig.ii命令iit初始化Gop工程目录
mkdir ewprojectcd ewprojectgop iitesure自动从全局GOPATH拷贝所需要的依赖项到src/vedor目录下。-g 参数将会自动调用 goget<package> 下载不在全局 GOPATH 中的包并且拷贝到 vedor 下。 -u 则总是调用 goget<package> 更新每一个依赖包并且拷贝到 vedor 下。
gop esure [-g|-u] [target_ame]status列出当前目标所有依赖包并显示拷贝状态。
gop status [target_ame]add从GOPATH中拷贝指定的依赖包到vedor目录下。-u 将会覆盖原先存在 vedor 下面的包。
gop add [-u] <package>rm从工程vedor中删除某个包。
gop rm <package>buildgobuild 编译目标
gop build [target_ame]rugoru 编译并运行目标
gop ru [target_ame]test运行 gotest 将执行单元测试.
gop test [target_ame]release运行 gorelease 将自动编译并拷贝资源到bi目录下
gop release [target_ame]
评论