对于一个项目来说,不可能所有代码都自己写。

所以这就涉及到引入别人的代码,得有效避免重复造轮子,在 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

你学废了么?