Go 应用开发的管理工具 GOP

MIT
Google Go
跨平台
2017-08-17
lunny

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

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

git clone xxx@mydata.com:bac/aaa.git
cd aaa
gop ensure -g
gop build
gop 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 newproject
cd newproject
gop init

ensure

自动从全局 GOPATH 拷贝所需要的依赖项到 src/vendor 目录下。-g 参数将会自动调用 go get <package> 下载不在全局 GOPATH 中的包并且拷贝到 vendor 下。 -u 则总是调用 go get <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

go build 编译目标

gop build [target_name]

run

go run 编译并运行目标

gop run [target_name]

test

运行 go test 将执行单元测试.

gop test [target_name]

release

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

gop release [target_name]
加载中

评论(1)

星辰大海V
如果环境变量gopath有多个就不好使了。。

暂无资讯

暂无问答

​什么是gop_cache

什么是gop?Group Of Picture。参考:http://zh.wikipedia.org/wiki/%E5%9C%96%E5%83%8F%E7%BE%A4%E7%B5%84 BMS 及SRS中: gop_cache 缓存最新的gop,on为打开,off为关闭,默认为on。 如果是...

2015/05/19 18:23
255
0
视频直播时的QoS策略

一、如何判断当前的网络状况 可以以发送一帧视频数据的时间为依据,判断当前网络拥塞情况。 网络中出现丢包和抖动,导致接收端接收数据超时,会激发发送端数据重传,重传机制本身挤占网络带宽...

2017/10/18 09:24
27
0
利用简单工具进行客观视频质量分析

#利用简单工具进行客观视频质量分析 ## 1. 主要工具: ffmpeg, eavlvid 其中eavlvid的下载地址:http://www2.tkn.tu-berlin.de/research/evalvid/EvalVid/evalvid-2.7.tar.bz2 其实只使用了p...

2016/07/11 11:06
314
0
如何看待手机直播系统原生源码的功能

现在近几年,随着网络直播行业的迅猛发展,越来越多的人开始对直播系统的搭建开始逐步了解,那有些人不禁要问,直播原生源码对直播系统有什么具体的作用呢? 手机直播原生源码对手机直播APP...

04/17 09:23
7
0
网络视频直播系统开发需要用到哪方面的知识?

其实最难的难点是提高首播时间、服务质量即Qos。要想在技术上把别的直播站PK下去,可以考虑这几种方案: 1. gop缓存,为加快首播时间 2. gop丢帧,为解决延时,为什么会有延时,网络抖动、网...

04/10 13:44
16
0
手机直播系统——直播源代码重点及优化重点

随着直播平台观看人数越来越多,不少人对手机直播系统直播源代码常常会感到好奇。同时,在直播过程中还有很多看不到的东西,也是手机直播系统未来需要优化的重点问题。 一、手机直播系统之直...

05/14 11:28
7
0
I P B PTS DTS

流媒体的一些概念

2016/06/14 13:45
13
0
x264 参数 转载

图片组就是视频内一长串连续的单帧图像..通常两个 I 帧之间的部分就是一个图片组 图片组包含上述三种帧..一个图片组必定以 I 帧开始 ..以 I 帧结束..同时结束的这个 I 帧又是下一个图片组的起...

2016/08/13 21:10
132
0
I,P,B帧和PTS,DTS的关系

基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成...

2015/06/17 19:20
132
0
That a topic for the comin

That a topic for the comin

2015/06/23 13:45
8
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部