Golang中如何创建自定义包

Golang中如何创建自定义包 我有一个仓库,里面是我自己的测试框架原型。我需要关于 go.sum、包和模块方面的帮助,因为我不知道需要做什么才能在其他项目中使用这个包。仓库地址:GitHub - Daniilkan/GTest

2 回复

如果你不依赖任何其他包,你可以拥有一个非常精简的 go.mod 和空的 go.sum。在你的仓库中,我可以在你的 go.mod 里看到有一个依赖项:github.com/stretchr/testify,但你在任何地方都没有使用它,所以你可以直接移除它。并保持 go.sum 为空。

更多关于Golang中如何创建自定义包的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


首先,你需要将你的仓库转换为一个Go模块,这样其他项目才能导入它。在你的仓库根目录下运行:

go mod init github.com/Daniilkan/GTest

这会创建 go.mod 文件,定义了模块路径。然后,确保你的包结构正确。例如,如果你的主要代码在 gtest.go 中,它应该位于根目录或子目录中,并声明包名(如 package gtest)。其他项目可以通过导入路径 github.com/Daniilkan/GTest 来使用。

关于 go.sum:当你运行 go mod tidy 或构建时,Go 会自动生成或更新 go.sum 文件,它记录依赖项的校验和,无需手动干预。只需确保将 go.modgo.sum 都提交到仓库。

在其他项目中使用时,在目标项目的 go.mod 中添加依赖:

go get github.com/Daniilkan/GTest

然后导入即可:

import "github.com/Daniilkan/GTest"

func main() {
    // 使用你的包,例如 gtest.SomeFunction()
}

如果你的包有子目录,每个子目录都是一个独立的包。例如,创建 assert 子目录并放置 assert.go,声明 package assert,那么导入路径为 github.com/Daniilkan/GTest/assert

检查你的仓库:目前缺少 go.mod,且代码直接放在根目录。建议快速添加 go.mod 并确保代码结构清晰。例如,将 gtest.go 移至子目录如 /gtest 中,或保持根目录但明确定义包。

回到顶部