1.发布依赖与使用
编写依赖
1.13后依赖的 go.mod 内 module 需要以域名开始,例:
module github.com/lifegit/go-gulu
go 1.16
require (
...
)
本地调用
依赖开发完毕后,其他项目使用本地依赖 replace 规则介绍
// 项目的 go.mod
module dream
go 1.16
require (
github.com/lifegit/go-gulu v0.0.0-incompatible
)
replace github.com/lifegit/go-gulu => /Users/yxs/GolandProjects/src/go-gulu
// main.go
package main
import "github.com/lifegit/go-gulu/arrayconv"
func main() {
arrayconv.IntIn(2, []int{1,2,3})
}
发布到 github
发布
$ 开发代码
$ git add .
$ git commit -m "提交代码"
$ git push origin 分支名
$ 在 github release 打 tag,例: v1.0.0
引用
// main.go
package main
import "github.com/lifegit/go-gulu/arrayconv"
func main() {
arrayconv.IntIn(2, []int{1,2,3})
}
// 运行 go mod tidy, 可发现 go.mod 已自动就绪 latest 版本依赖
module dream
go 1.16
require (
github.com/lifegit/go-gulu v1.0.0
)
2.依赖升级v2v3…
当依赖升级到v2v3…时的方法:
- 在v1代码中建立一个v2文件夹实现新版本内容
- [推荐] 使用新的分支,go.mod 中 module 名字最后必须带版本号,例:
github.com/lifegit/go-gulu/v2
。 ```go // 本地调用 module dream
go 1.16
require ( github.com/lifegit/go-gulu/v2 v2.0.0-incompatible )
replace github.com/lifegit/go-gulu/v2 => /Users/yxs/GolandProjects/src/go-gulu
// 远程调用 module dream
go 1.16
require ( github.com/lifegit/go-gulu/v2 v2.0.0 )
// main.go package main
import “github.com/lifegit/go-gulu/v2/arrayconv”
func main() { arrayconv.IntIn(2, []int{1,2,3}) } ```