当前位置:首页 > Windows程序 > 正文

特别是项目源在golang.org上的 glide get github.com/mattn/go-adodb 导入单个

2024-03-31 Windows程序

golang是一门简洁高效的开发 语言,但是承打点一直是一个痛点,如图 :

技术分享图片

很多开源项目出格是github.com中的大量应用golang.org和google.golang.org中的源码,且由于被墙的原因也会导致各类不顺利,复制GOPATH里内容在团队人对照多的时候较庞大

包之前关系庞大,无法确切的知道本身包里引用哪些项目源,甚至可能有 一些被误删导致的问题

无法准确打点引用包源的版本,可能会导致一些项目编译欠亨过

不像java里有maven或者jar、donet里有dll文件等等,让使用方便利很多 。

go在1.5版本引入了vendor属性(默认封锁,,需要设置go环境变量GO15VENDOREXPERIMENT=1),并在1.6版本中默认开启了vendor属性。
vendor就是go编译时,优先从项目源码树根目录下的vendor目录查找代码(可以理解为切了一次GOPATH),如果vendor中有,则不再去GOPATH中去查找。
固然golang的承打点也有好几种方案(godep/govendor/gvt等等),模式根基上也都差不久不多,对比而言glide更便利,所以着重介绍glide的使用

glide安置

go get github.com/Masterminds/glide 安置完成后在%GOPATH%/bin目录下会有一个glide.exe文件

技术分享图片

配置glide的环境变量,便利后面使用glide指令

切换到项目根目录下用glide init 指令初始化yaml文件

glide init

技术分享图片


初始化后完整目录如下

技术分享图片


glide.yaml的内容,因为main.go里暂时只有fmt.Println("hello world")

package: github.com/nickchou/glide-go import: []

导一个包测试

glide get github.com/mattn/go-adodb

如果报以下错(如图):
Unable to export dependencies to vendor directory: Error moving files: exit status 1. output:

技术分享图片


解决步伐: 找到%GOPATH%/src/github.com/Masterminds/glide/path/winbug.go 文件,改削约75行处

func CustomRename(o, n string) error { // Handking windows cases first if 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) } 从头编译后复制glide.exe文件到%GOPATH%/bin目录下【重要】

从头导入包,如果main函数里用到了此包,且包里含有其他项目源,也会一并下载 注意被墙,出格是项目源在golang.org上的

glide get github.com/mattn/go-adodb

导入单个包源

glide get --all-dependencies -s -v github.com/mattn/go-adodb 导入单个包源的目录布局如下

技术分享图片

按照指定版本号导入项目,如

glide get github.com/go-sql-driver/mysql#v1.2 glide.yaml文件内容如下

技术分享图片

安置完毕,实际使用import的时候会优先在vendor目录下找代码源

window下golang承打点glide使用说明

标签:

原文地点:https://www.cnblogs.com/nickchou/p/8955180.html

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/33480.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494585访问次数
  • 建站天数
  • 友情链接