Golang 1.18新特性工作区workspace

需求分析

加入现在我们把一个大的项目分成了两个项目,一个项目是基础模块,用来实现项目的公用功能。第二个项目要依赖第一个项目,注意:这里提到的是项目,而不是模块。解决方法有二:

  1. 把第一个项目创建好,提交到github,第二个项目使用 go get 下载。
  2. 第二个就是我们今天提到的使用Golang1.18里面的新功能workspace。

第一种方法有一个缺陷就是,如果我们频繁的修改代码,那么第二个项目就要不停的更新,否则版本就不是最新的。而第二个方法就没有这个问题,项目可以在本地依赖。

注意:方法二功能需要Go版本是1.18以上!!!

实现步骤

package common

import "fmt"

func Dosomething() {
	fmt.Println("do something...")
}
package main

import "common"

func main() {
	common.Dosomething()
}
// package common is not in GOROOT
 go work init .\common\
go 1.18

use .\common\
go work use .\myproject_1\
go 1.18

use (
	./myproject_1
	.\common\
)
[Running] go run "e:\golang开发学习\myworkspace\myproject_1\main.go"
do something...

[Done] exited with code=0 in 2.632 seconds