项目目录结构如下,本文主要是解决如何引入其他文件夹的代码或者其他项目的包。刚开始老是碰到引入问题。编译时,引入错误通常会报malformed module path "xxxxx/common/message": missing dot in first path element类似的错误。还有就是有些开源库中用到golang.org/x/....等问题,golang.org这个网址本身无法访问造成了很多障碍(新版IDEA和VS Code可以直接引入本地目录的代码,模块名称+目录即可以引入)。
我的目录结构如下:
go.mod文件内容如下
module 模块名字自行修改
go 1.13
require (
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect
github.com/apache/thrift v0.13.0
github.com/go-ole/go-ole v1.2.4 // indirect
github.com/shirou/gopsutil v2.20.2+incompatible
golang.org/x/sys v0.0.0-20200406155108-e3b113bbe6a4 // indirect
)
其实go.mod文件内容都是自动生成的,只需要前面几行,需要定义module xxxx ,其中xxxx代表模块的名字,引入包的时候需要用到,如果模块名字为test,则引入本地其他package,应该这麽写
import (
"test/common/message
)
其他test为模块名字,文件夹名字和模块名字不一致时,引入还是使用模块名。
还有就是无法访问问题,golang.org域名正常情况都是无法访问的,有些包就无法下载。有些库本身使用到了"golang.org/x/....之类的包,那就可能需要配置GO_PROXY来做。可以选择环境变量来做,也可以在ide编辑器中设置。我使用的是liteide