当前位置: 首页 > news >正文

soho网站建设/泰安网站制作推广

soho网站建设,泰安网站制作推广,标书制作好学吗,做外墙资料的网站目录 一、glide简介 二、glide命令简介 三、glide安装配置 step1:下载安装glide step2: 使用glide step3:根据glide安装依赖到vendor 四、gilde官方bug bug1:windows使用glide get报错 bug2:glide install 或者 glide g…

目录

一、glide简介

二、glide命令简介

三、glide安装配置

step1:下载安装glide

step2:   使用glide

step3:根据glide安装依赖到vendor

四、gilde官方bug

bug1:windows使用glide get报错

bug2:glide install 或者 glide get失败

五、glide常用命令

初始化glide

升级依赖

安装依赖到vendor

清理缓存

镜像操作


一、glide简介

  1. glide是继vendor之后的包管理工具,它的出现为了解决vendor的不足,vendor作为目录管理不具备主动下载的功能,只能通过go get配合,并且不能指定版本以及不能区分版本。
  2. glide的原理:扫描项目的依赖解析其依赖关系,并与gilde.yaml文件进行匹配,如果相匹配优先使用指定版本。
  3. glide的特性:针对vendor进行了功能扩展,它提供了依赖解析和传递,并提供依赖下载,增加了依赖版本控制,镜像源管理。
  4. glide可以设置缓存,类似本地仓库,位置在%userdir%/.glide/cache/src 最外部有mirror.yaml来指定镜像,glide命令在获取依赖包时,通过这个缓存进行加速。

二、glide命令简介

##安装glide后glide --help
命令描述功能
create, initInitialize a new project, creating a glide.yaml file初始化,生成glide.yaml文件
config-wizard, cwWizard that makes optional suggestions to improve config in a glide.yaml file.配置向导,提供glide.yaml的依赖可选项
getInstall one or more packages into `vendor/` and add dependency to glide.yaml.安装一个依赖包到项目vendor文件夹并添加到glide.yaml文件
remove, rmRemove a package from the glide.yaml file, and regenerate the lock file.从glide.yaml文件删除一个依赖并且重新生成lock文件
importImport files from other dependency management systems.从其他依赖项管理系统导入文件。
namePrint the name of this project.打印项目名
novendor, nvList all non-vendor paths in a directory.列出glide.yaml的所有非vendor路径。
rebuildRebuild ('go build') the dependencies重新build项目
install, iInstall a project's dependencies安装项目依赖
update, upUpdate a project's dependencies更新项目依赖
tree(Deprecated) Tree prints the dependencies of this project as a tree.树形展示项目依赖
listList prints all dependencies that the present code references.列表展示代码所有依赖项
infoInfo prints information about this project打印关于这个项目的信息
cache-clear, cc Clears the Glide cache.清除glide缓存。
aboutLearn about Glide关于glide
mirrorManage mirrors镜像管理
help, hShows a list of commands or help for one command帮助命令

三、glide安装配置

step1:下载安装glide

go get github.com/Masterminds/glideps:go get 相当于git clone与 go install 
其执行文件在GOPATH/bin/glide.exe 等效:
使用git clone 将 github.com/Masterminds/glide 下载到GOPATH/src下
再进入GOPATH/src/github.com/Masterminds/glide 使用go install main.go

step2:使用glide

%GOPATH%/src/glide-demo           ##在此目录下建立项目叫glide-demo
%GOPATH%/src/glide-demo/main.go   ##在项目目录新建src文件夹并创建main.go
%GOPATH%/src/glide-demo/vendor    ##在项目目录新建vendor文件夹##########################项目结构#########################
glide-demo    ├─vendor└─main.go##########################main.go ########################
package mainimport ("github.com/gin-gonic/gin""net/http"
)func main() {router := gin.Default()router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "Hello World")})router.Run(":8000")
}
cd /d %GOPATH%/src/glide-demo        ##切换项目根目录
glide init                           ##glide.yaml文件ps:初始化过程中会提示需不需要配置向导,可以使用N快速默认初始化#####################gilde.yaml#####################################
package: glide-demo
import:
- package: github.com/gin-gonic/ginversion: v1.4.0

glide.yaml语言详解

其中重要的
import:用来标记所有引用
package:引用的包名
version:包的版本其中版本定义为  va.b.c命名方式  a不兼容大版本 b功能迭代版本  cbug修复或小版本
版本约束规则如下:
=: equal (aliased to no operator)
!=: not equal
>: greater than
<: less than
>=: greater than or equal to
<=: less than or equal to-标识范围
*标识所有
~标识末位升级若干版本
^标识升级倒数第二位位若干版本
x标识x位不做要求eg:
~1.2.x     等价  version>=1.2.0, <1.3.0
^1.2.3     等价  vserion>=1.2.3, <2.0.0
1.2 -1.3.4 等价 version>=1.2,<=1.3.4

step3:根据glide安装依赖到vendor

cd /d %GOPATH%/src/glide-demo        ##切换项目根目录
glide install                        ##根据glide.yaml文件安装依赖
ps:首次安装依赖会检查glide.lock,下载gilde.yaml后生成glide.lock[INFO]  Lock file (glide.lock) does not exist. Performing update.
[INFO]  Downloading dependencies. Please wait...
[INFO]  --> Fetching github.com/gin-gonic/gin
[INFO]  --> Setting version for github.com/gin-gonic/gin to v1.4.0.
[INFO]  Resolving imports
[INFO]  --> Fetching github.com/gin-contrib/sse
[INFO]  --> Fetching github.com/mattn/go-isatty
[INFO]  --> Fetching github.com/golang/protobuf
[INFO]  --> Fetching github.com/ugorji/go
...安装依赖时,每次都会下载到vendor目录中,时间较长...安装结束后,vendor目录有项目的所有依赖包

四、glide官方bug

bug1:windows使用glide get报错

[ERROR] Unable to export dependencies to vendor directory: Error15      
moving files: exit status 1. output: Access is denied. 0 dir(s) moved.
原因:此bug由于windows操作系统与其他系统命令不一样,官方bug,需要修改gilde源码,重新编译step1:修改%GOPATH%\src\github.com\Masterminds\glide\path\winbug.go
====================================================================================
func CustomRename(o, n string) error {// Handking windows cases firstif runtime.GOOS == "windows" {msg.Debug("Detected Windows. Moving files using windows command")//此处修改 cmd := exec.Command("cmd.exe", "/c", "move", o, n)cmd := exec.Command("cmd.exe", "/c", "xcopy /s/y", o, n+"\\")output, err := cmd.CombinedOutput()if err != nil {return fmt.Errorf("Error moving files: %s. output: %s", err, output)}return nil} else if detectWsl() {cmd := exec.Command("mv", o, n)output, err2 := cmd.CombinedOutput()msg.Debug("Detected Windows Subsystem for Linux. Removing files using subsystem command")if err2 != nil {return fmt.Errorf("Error moving files: %s. output: %s", err2, output)}return nil}return os.Rename(o, n)
}
=====================================================================================
step2:编译安装gildecd /d %GOPATH%\src\github.com\Masterminds\glide
go install glide.go

bug2:glide install 或者 glide get失败

[INFO]  --> Fetching golang.org/x/sys/unix
[WARN]  Unable to checkout golang.org/x/sys/unix
[ERROR] Error looking for golang.org/x/sys/unix: Cannot detect VCS
[INFO]  --> Fetching updates for github.com/modern-go/concurrent
[INFO]  --> Fetching updates for github.com/modern-go/reflect2
[ERROR] Failed to retrieve a list of dependencies: Error resolving imports
原因:个别golang.org官网包被墙,需要设置代理方法1:通过 glide mirror set https://golang.org/x/sys https://github.com/golang/sys --vcs git 设置镜像方法2: 设置代理 go evn -w GOPROXY=https://goproxy.io 此方法经常失效方法3:(推荐使用)全局添加镜像
step1:找到%GLIDE_HOME%,默认在C:\\Users\\mechrevo\\.glide
step2:修改mirror.yaml,添加镜像:常用的crypto,net,sync,sys等===========================================================================
repos:
- original: https://golang.org/x/cryptorepo: https://github.com/golang/crypto
- original: https://golang.org/x/crypto/acme/autocertrepo: https://github.com/golang/cryptobase: golang.org/x/crypto
- original: https://golang.org/x/sys/unixrepo: https://github.com/golang/sysbase: golang.org/x/sys
- original: https://golang.org/x/netrepo: https://github.com/golang/net
- original: https://golang.org/x/syncrepo: https://github.com/golang/sync
- original: https://golang.org/x/toolsrepo: https://github.com/golang/tools
- original: https://golang.org/x/grpcrepo: https://github.com/golang/grpc
- original: https://golang.org/x/timerepo: https://github.com/golang/time
============================================================================

五、glide常用命令

初始化glide

cd /d %GOPATH%/src/glide-demo        ##切换项目根目录
glide create  or glide init  

升级依赖

cd /d %GOPATH%/src/glide-demo        ##切换项目根目录
glide update or glide up

安装依赖到vendor

cd /d %GOPATH%/src/glide-demo        ##切换项目根目录
glide install                        ##项目根目录必须有vendor文件夹

清理缓存

glide cc          #清理C:\\Users\\mechrevo\\.glide\cache

镜像操作

设置镜像
glide mirror set [original] [replacement] 
glide mirror set [original] [replacement] --vcs [type]#此操作等同修改 C:\\Users\\mechrevo\\.glide\mirror.yaml文件移除镜像
glide mirror remove [original]获取包的镜像列表
glide mirror list

http://www.jmfq.cn/news/5271211.html

相关文章:

  • 网页客服系统源码/快速排名优化推广排名
  • 做动态网站的软件有哪些/搜索引擎优化的简写是
  • 山东网站制作软件/如何创建自己的个人网站
  • todoist wordpress/系统优化软件哪个好
  • 网站建设和app开发/专业seo优化公司
  • 专业版式设计网站/淘宝指数转换工具
  • 免费申请企业网站/瑞昌网络推广
  • 厦门市翔安建设局网站/浏阳廖主任打人案
  • 商城网站建设价位/网络推广长沙网络推广
  • 网站建设哪家好万维科技/小学生关键词大全
  • 郴州网站优化/营销战略
  • 做美图+网站有哪些/营销软文写作
  • 武汉做网站建设/win10优化大师免费版
  • 网站建设图片怎么做/百度的广告
  • 开发网址需要多少钱/巢湖seo推广
  • 男女做那些事免费网站/排名优化seo公司
  • 医院网站建设合同/品牌推广外包公司
  • 网站设计的思想/东莞网站建设seo
  • 医药网站设计/站长工具精品
  • 成都网站设计哪家好/房管局备案查询网站
  • 通用wap网站生成系统/百度怎么做广告
  • 怀化信访网站/seo运营学校
  • 绍兴网站制作推广/网站制作郑州
  • 深圳珠宝网站建设/爱站工具网
  • 推网站/郑州网络营销推广机构
  • 政府网站建设申论/郑州推广优化公司
  • 全网最大的精品网站/汕头网站建设开发
  • 昆明网站建设公司猫咪科技/巨量算数数据分析
  • 深圳网站建设 网站设计/sem竞价培训班
  • 织梦网站防止注入/抖音怎么推广