Golang包管理工具之govendor
简介在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
为什么要使用govendor
在使用Golang开发项目的过程中,我们会使用很多外部包,但是我们一般通过go get获取相应包后,都下载到了GOPATH对应的路径下。这样造成了我们不能将多个项目的依赖隔离开,其次就是多个人协同开发一个项目后,每个人下载的包有可能不一致,所以通过这种方式也可以得到解决。
govendor简介
golang工程的依赖包经常使用go get命令来获取,例如:
go get github.com/kardianos/govendor
会将依赖包下载到GOPATH的路径下。
常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 GO15VENDOREXPERIMENT 环境变量(Go 1.6版本默认开启该环境变量),用于将go build时的应用路径搜索调整成为 当前项目目录/vendor 目录方式。通过这种形式,我们可以实现类似于 godep 方式的项目依赖管理。
govendor安装
Github地址:https://github.com/kardianos/govendor
go get -u github.com/kardianos/govendor
govendor使用
- 1、初始化
需要进入到项目目录,使用下面的命令进行初始化:
govendor init
会出现一个vendor文件夹,里面的vendor.json 文件用来记录依赖包的信息。
- 2、添加本地已有的库(必须是存在的GOPATH中的库)
govendor add github.com/jinzhu/gorm
- 3、移除
govendor remove github.com/jinzhu/gorm
- 4、从远程拉取库(类似于go get)
govendor fetch github.com/jinzhu/gorm
- 5、将GOPATH中本工程使用到的依赖包自动移动到vendor目录中(通过add直接获取的,可能相关依赖包是没有的,就需要执行该命令)
govendor add +external
- 6、查看当前项目中的包
govendor list
注意:项目必须建立在GOPATH的src中,否则go找不到对应的项目,当我们使用govendor后,会自动找到该项目下的vendor目录去获取相应包。
前一篇博客中已经说过Golang对Gzip的处理,其实这是我的服务器端的处理,那么当我们服务器返回Gzip压缩的字符串后,客户端如何进行解压呢?本文主要记录下JavaScript对Gzip进行压缩和解压处理。
速查表是自己整理了一份在工作中常用的一些资料,包含了自己在日常开发中需要常常用到的相关技术。可以给读者进行参考。
Tauri 是一个框架,用于为所有主要桌面平台构建小巧、快速的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架,以构建他们的用户界面。应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API。
Tauri 应用程序的用户界面目前在 macOS 和 Windows 上利用 tao 作为窗口处理库,在 Linux 上通过 Tauri 团队孵化和维护的 WRY 利用 WebKit、Windows 上的 WebView2 和 Linux 上的 WebKitGTK 创建一个统一的系统 webview(和其他好东西,如菜单和任务栏)接口。
最近关注流媒体服务器来做网络直播,本想使用阿里云的流媒体服务器,由于费用的问题还是想能否自己搭建一个流媒体服务器供自己测试使用。果不其然,Nginx居然如此强大,可以用来做流媒体服务器。本文将具体介绍流媒体服务器的搭建过程和使用过程。
vmstat是Virtual Memory Statistics(虚拟内存统计)的缩写,利用该命令可以对操作系统的内存信息、进程状态和CPU活动等进行监视。但是只能对系统的整理情况进行统计,无法对某个进程进行深入的分析。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题