gomod用来对包进行管理,在Gov1.17默认开启。
module go-demo/testParser
go 1.17
以上是一个mod例子,require中是依赖的管理,使用go mod tidy一键下载依赖
所下载的依赖,都位于环境变量GOMODCACHE目录下
可以使用go env进行查看
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\CHY\AppData\Local\go-build
set GOENV=C:\Users\CHY\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=E:\workspace\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=E:\workspace
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\SetupPath\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\SetupPath\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.6
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=E:\workspace\src\go-demo\testParser\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\CHY\AppData\Local\Temp\go-build1531513457=/tmp/go-build -gno-record-g
cc-switches
此时开始引入本地包的步骤,首先 新增一个依赖
require hthorizon-go/htsqlparser v0.0.0
或
require(
hthorizon-go/htsqlparser v0.0.0
)
里的ddis是自定义命名的,取决于想在代码里如何使用该包,当然,也可以在import处进行再命名,注意:hthorizon-go/htsqlparser包并不是实际存在的,我们无法在上述的环境变量管理依赖的目录下找到该文件,所以版本号使用v0.0.0即可
重点来了:我们将hthorizon-go/htsqlparser指向本地包所在的目录,可以是相对路径,也可以是绝对路径
replace hthorizon-go/htsqlparser => ../../hthorizon-go/htsqlparser
或
replace (
hthorizon-go/htsqlparser => ../../hthorizon-go/htsqlparser
)
处是不需要携带版本号的,完成上述操作之后,我们就可以直接在代码中调用本地包了
import (
"hthorizon-go/htsqlparser"
)
注意:本地包必须是完整的,包内也必须有自己的go.mod文件,对于import引入包后执行的操作,本文不在赘述,可参考Go初始化顺序