go module 引入本地包的问题

jiangjie · · 367 次点击 · · 开始浏览    

问题来源:自己写了一个小框架,想单独放到项目外面方便多项目引入使用。但是放到“$GOPATH/pkg/mod”下不能直接用,各种报错,后经过各种试验最终编译通过,总结下来就以下几点,分享给大家。

项目是放到“project”文件夹下的,想要引入的包是“frame”,这两个文件夹可以各自在计算机磁盘任意位置。

该文章使用go版本号1.16.5

/*
项目文件中的"go.mod"文件:
module project
go 1.16
require frame v1.0.0
replace frame v1.0.0 => D:\workspace\go\pkg\mod\frame@v1.0.0

被引入包的"go.mod"文件:
module frame
go 1.16
*/
1、首先被引入的包必须有"go.mod"文件
2、项目中"go.mod"文件中"require"标识的包必须有版本号
3、项目中"go.mod"文件中"replace"标识的且"=>"前的包可以有版本号也可以没有
4、项目中"go.mod"文件中"replace"标识的且"=>"后的数据是该包的路径,可以是绝对路径也可以是相对路径,路径带版本号也得写进去

ps:在windows下测试,包路径分隔符可以是“/”也可以是“\”,都可以编译通过。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

367 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传