离线使用第三方包依赖,进行项目的管理与编译。主要是面临goland中import变红,但却能正常编译的问题,这纯粹是我个人原因:goland中的GOPATH填错了!!!(见如下第3、4步)。
1.在项目根目录下建立vendor目录
把所有需要依赖的第三方包,放入vendor目录中
2.go mod init 项目名
把当前项目初始化为mod项目,在项目中自己管理所需依赖。并在go.mod文件中添加依赖如下:
require (
github.com/PuerkitoBio/goquery v1.5.1
github.com/astaxie/beego v1.12.2
github.com/go-sql-driver/mysql v1.5.0
github.com/json-iterator/go v1.1.10
github.com/prometheus/common v0.13.0 // indirect
github.com/smartystreets/goconvey v1.6.4
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a // indirect
golang.org/x/net v0.0.0-20200822124328-c89045814202 // indirect
golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6 // indirect
golang.org/x/text v0.3.3 // indirect
google.golang.org/protobuf v1.25.0 // indirect
)
3.确保go env
确保go env,尤其是GO111MODULE、GOPATH、GOFLAGS、GOPROXY:
set GO111MODULE=on
set GOFLAGS=-mod=vendor
set GOPATH=D:\WORK\gopath
set GOPROXY=https://goproxy.io,direct
4.确保go env后,在goland中确认如下处不要勾选
并确认此处的GOPATH正确
其余环境变量如下,仅供参考:
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\albert\AppData\Local\go-build
set GOENV=C:\Users\albert\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=-mod=vendor
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\WORK\gopath
set GOPRIVATE=
set GOPROXY=https://goproxy.io,direct
set GOROOT=D:\developTool\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\developTool\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\albert\AppData\Local\Temp\go-build652112946=/tmp/go-build -gno-record-gcc-switches