我在理解创建具有本地程序包的go项目的工作流程时遇到了麻烦。假设我创建了一个新项目,使用git进行版本控制,它有一个main.go文件和一个tools.go文件,这些文件将在utils包中。所以我有一个这样的目录结构:/myproject/ main.go utils/ tools.gomain.go看起来像这样:package mainimport "./utils"func main() { utils.DoSomthing()}和tools.go看起来像这样:package utils;func DoSomething() {}使用go build和go run在本地一切正常。但这是托管在github上的,我希望能够让其他人使用go get命令来安装它。因此,必须将本地程序包导入更改为使用“ github.com/user/project/utils”格式,该格式可以正常工作,但现在我有两个源代码副本,真正的问题是该副本带有git历史记录具有使用下载的副本的导入。因此,如果我使用git历史记录来处理副本,则对tools.go所做的任何更改都不会引起注意,因为它将使用下载的副本。所以我想知道是否有人可以解释在同一项目中使用go get,版本控制和包导入的正确方法。
3 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
如果要将代码保留在本地版本存储库中,只需将代码放在GOPATH中即可。
GOPATH接受多个路径。例如。在Linux上
GOPATH=$HOME/go:$HOME/prj/foo
因此,您可以将第3方软件包安装在$ HOME / go / src / ...中,并且可以将代码控制在$ HOME / prj / foo / src中。
- 3 回答
- 0 关注
- 195 浏览
添加回答
举报
0/150
提交
取消