Go module 本地导包方式

时间:2024-01-27 17:11:59

tip本文只讲关于Go module 本地导包方式,其他请自行查阅

Go module 导包方式,go mod init project-name,会得到一个go.mod文件,此文件是管理依赖的,通常会从github或其他代理拉取代码库。

module package-name

go 1.xx //go version

require(
     github.com/repo1/package1 v0.0.0 // 远程代码库url + 版本号 严格规范 vx.x.x

)

replace (
      //一般替换被墙的url
      newUrl => oldUrl
      //也可以本地导包时使用
      package-name => 本地包的绝对路径或相对路径 
      //goland下本地导包直接配置此项,在Synchronous dependency,go.mod会自动生成一个url+版本+哈希,然后正常跑代      
      //码。 go run 或者 go build 也可以 go mod vendor 将依赖放到一个可管理的 '项目/vendor' 文件夹

)

goland下本地导包直接配置replace,不要配置require(远程拉取除外),在智能提示点击Synchronous dependency,go.mod会同步依赖并自动生成一个url+版本+哈希,然后正常跑代码。 go run 或者 go build 也可以 go mod vendor 将依赖放到一个可管理的 '项目/vendor' 文件夹

如果go.mod本地导包出现xxx@v0.0.0: malformed module path "xxx": missing dot in first path element,查看go.mod是否在require配置了xxx路径,删掉,然后go run 自动生成一个url就不会报错了。