版本 1.18

创作目的: 之前想要在go的项目里引用另一个自己写的项目, 然后被折磨半天,乃至弃坑

1 创建项目

我们创建目录gogogo,下面有两个项目:

分别创建main.go

utils/main.go

1
2
3
4
5
6
package utils
import "fmt"
// 大写才能被外部访问
func Log(){
fmt.Print("go mod is shit")
}

demo/main.go

1
2
3
4
5
6
7
8
9
package main
import (
"fmt"
"utils" // 这个就是我们的另一个项目
)
func main() {
fmt.Print("hello\n")
utils.Log() // 调用另一个项目的方法
}

2 分别初始化项目 (go mod init 项目名)

1
2
3
cd demo 
go mod init demo
go mod tidy

1
2
3
cd utils
go mod init utils
go mod tidy

此时代码结构如下,自动生成了go.mod

!!!注意: 如果你init的项目名包含关键字或go使用的名称,则会失败!!!

错误示范

3 重头戏: 修改go.mod

使用replace关键字指定 引入的包名对应的目录

此时使用go mod tidy (这个命令其实是让go处理依赖,如果有远端的依赖会自动下载)
结果,发现go.mod悄然发生了一些变化?!

4 曲终: 使用go命令运行main.go

运行go文件方案一: 简单粗暴直接运行

1
go run main.go

运行go文件方案二: build后执行exe

1
2
3
go build
# build完之后会生成 项目名.exe 文件
demo.exe


本站总访问量