Go代码工程结构
当前不支持在线导入,需要将解压缩后的Go驱动源码包放在本地工程,驱动代码基于go mod管理,需要GO111MODULE设置成auto或者on,执行go build或者go run的时候,会解析并下载相关驱动依赖,当前华为内部可以设置GOPROXY为“GOPROXY=http://cmc.centralrepo.rnd.huawei.com/go,http://mirrors.tools.huawei.com/goproxy”。外部用户可以设置为 “GOPROXY=https://goproxy.io,direct”。
当前公司内存依赖仓在进行https改造,后续可以切换成“GOPROXY=https://cmc.centralrepo.rnd.huawei.com/go,https://mirrors.tools.huawei.com/goproxy”。
具体go mod开发工程如下:
-go
----pkg
----src
-------gitee.com
----------opengauss
-------------openGauss-connector-go-pq
-------Huawei_servicexx.com
----------xx_core_service
----------xx_other
----------go.mod
需要配置GOPATH=${go所在目录},go.mod里面需要添加一行:
replace gitee.com/opengauss/openGauss-connector-go-pq => ../gitee.com/opengauss/openGauss-connector-go-pq
表示代码里面所有的import “gitee.com/opengauss/openGauss-connector-go-pq”都是走本地路径, 同时依赖也不会去从代理里面下载。
如果不希望进行go mod工程的改造,需将GO111MODULE设置为off,并手动下载依赖包:xerrors和pbkdf2放在${GOPATH}目录下,与驱动根目录和业务代码保持同级。