使用git设置正确的Golang目录结构,以便在自定义包上使用go build
因此,我已经为这件事挠头好几个星期了,在阅读了几篇关于使用git设置正确的Golang目录结构,以便在自定义包上使用go build,git,go,package,file-structure,gopath,Git,Go,Package,File Structure,Gopath,因此,我已经为这件事挠头好几个星期了,在阅读了几篇关于$go build如何工作及其三个神奇目录/bin,/pkg,/src的资料后,我仍然不太清楚如何使用定制包构建Golang项目,以及如何管理git回购 让我更详细地解释一下我的情况: 我正在处理一个Go项目,该项目目录与默认的../user/Go/…目录不同。对于我的所有项目,我有一个不同的目录树,其结构如下: projects | project-a | project-b | docs | media | s
$go build
如何工作及其三个神奇目录/bin
,/pkg
,/src
的资料后,我仍然不太清楚如何使用定制包构建Golang项目,以及如何管理git回购
让我更详细地解释一下我的情况:
我正在处理一个Go项目,该项目目录与默认的../user/Go/…
目录不同。对于我的所有项目,我有一个不同的目录树,其结构如下:
projects
| project-a
| project-b
| docs
| media
| scrum
| project-b <-- git repo containg Go structure
| .git
| gitignore.txt
| bin
| pkg
| src
| custom-package-a
| | foo.go
| custom-package-b
| | bar.go
| | main.go
| project-c
项目
|项目a
|b项目
|文件
|媒体
|scrum
|project-b从Go 1.11开始,您不需要使用$GOPATH
您可以使用go mod init[your repo]
只需运行go install
或go build
即可下载DEP,并创建一个go.mod
和go.sum
文件来跟踪DEP
查看此go install
是将二进制文件放在bin
目录中,而不是go build
。通常,您将项目放在GOPATH中,而不是相反,我会仔细浏览,因为这里的任何建议都会反映这一点。当然,您可以强制使用您想要的任何模式,正如您在这里看到的(或者查看go1.11中的go模块,它不需要GOPATH),GOPATH通常不是git存储库的一部分。更典型的情况是,如果存在projects/go/src/my.site/project-b/.git
和projects/go/src/my.site/project-b/custom-package-a/foo.go
,则/my.site/
段是可选的。看见这也将防止回购协议与第三方代码“混为一谈”(当然,除非你想这样做,否则它将进入项目/go/src/my.site/project-b/vendor
。请阅读如何编写go代码并坚持下去。我假设如何编写go代码将很快更新,因为它甚至没有提到mod
$GOPATH
,这似乎即将过时,并且是一个常见的抱怨。)g围棋用户。