对于一个项目来说,不可能所有代码都自己写。
所以这就涉及到引入别人的代码,得有效避免重复造轮子,在 Go 语言里面,这个操作也叫引包。
Go 语言诞生之后,升级了很多次一直都没有官方的包管理工具。
一直到 1.11 版才出现 go module 这个官方的管理工具。
于是现在的大部分 Go 语言新项目都在使用 go module 来进行包管理。
go get
但是如何引入本地的包呢?
一、引入的包在同一项目下
在实际开发中,这是我们最见的场景。
instancekun-package
kun-package
这是两个关键信息:
第一行是我们的这个总包的名字。
你可以理解为,我们新建的 go 项目其实也就是一个大包。
然后你会发现我在引入本地的包时,前面的包名就是这个名字:
看到 kun-package 前面的 design 了么?
github.com/golangstackdevgithub.com/golangstackdev/kun-package
go.mod 里面第二行是设定我们当前环境的 go 版本,也就是最小版本支持。
二、不在同一项目下面
其实难免我们要引用的包,是别人项目下面的,而不是自己项目下面的。
我们先来看一个项目结构图:
工程01
工程01工程02
工程01工程02
这个时候,要想完成引用的话:被引用的包和使用的工程都要有各自独立的 go.mod 文件。
project02/kun-package/go.mod
project01/go.mod
require 是声明我们引入的包名和版本。
replace 是进行替换对于的包指向路径。
非常容易理解!
project01/main.go
你学废了么?