GOP Go 应用开发的管理工具开源项目

我要开发同款
匿名用户2017年08月17日
42阅读
开发技术GO语言
所属分类Google Go、管理和监控
授权协议MIT

作品详情

GOP是一个专为在GOPATH之外的Go应用开发的管理工具。当然他肯定不支持 GoGet 了。GOP会将所有的依赖项拷贝到 src/vendor 目录下,应用本身的源代码也在 src 下。

一个通常的使用过程如下:

git clone xxx@mydata.com:bac/aaa.gitcd aaagop ensure -ggop buildgop test特性

GOPATH兼容,工程本身作为GOPATH

多编译目标支持

将您的工程放到全局GOPATH之外

安装

情确保您能正常运行Go命令,GOP将依赖Go命令编译和测试

go get github.com/lunny/gop工程目录结构

工程目录结构示例如下:

<project root>├── gop.yml├── bin├── doc└── src    ├── main    │   └── main.go    ├── models    │   └── models.go    ├── routes    │   └── routes.go    └── vendor        └── github.com            ├── go-xorm            │   ├── builder            │   ├── core            │   └── xorm            └── lunny                ├── log                └── tango

可以看出主文件默认放在src/main下可以自动识别,当然也可以在Gop.yml中指定

Gop.yml

工程配置文件,必须存在并且放在和src平级。如果你没有定义任何目标,默认的目标将是src/main,目标名是工程名。

targets:- name: myproject1  dir: main  assets:  - templates  - public  - config.ini  - key.pem  - cert.pem- name: myproject2  dir: web  assets:  - templates  - public  - config.ini命令init

初始化Gop工程目录

mkdir newprojectcd newprojectgop initensure

自动从全局GOPATH拷贝所需要的依赖项到src/vendor目录下。-g 参数将会自动调用 goget<package> 下载不在全局 GOPATH 中的包并且拷贝到 vendor 下。 -u 则总是调用 goget<package> 更新每一个依赖包并且拷贝到 vendor 下。

gop ensure [-g|-u] [target_name]status

列出当前目标所有依赖包并显示拷贝状态。

gop status [target_name]add

从GOPATH中拷贝指定的依赖包到vendor目录下。-u 将会覆盖原先存在 vendor 下面的包。

gop add [-u] <package>rm

从工程vendor中删除某个包。

gop rm <package>build

gobuild 编译目标

gop build [target_name]run

gorun 编译并运行目标

gop run [target_name]test

运行 gotest 将执行单元测试.

gop test [target_name]release

运行 gorelease 将自动编译并拷贝资源到bin目录下

gop release [target_name]
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论