当你不使用github时,我一直试图弄清楚代码/工作区的标准文件夹布局/结构。
我可以看到go get
在获取github项目时是如何工作的,但假设我自己的git项目不具有{github.com}/{username}/{projectname}
引用的go get
结构以及如何在磁盘上构建你做go get
使用自己的git私有存储库时,您应该使用哪种布局和git get
网址?
答案 0 :(得分:6)
包本身不包含存储位置的参考。你只有:
package mypackage
因此,您可以将自己的本地版本放在自己的结构中,正如Volker在评论中指出的那样。这是您在自己的项目中使用的导入路径:
import "my/custom/path/mypackage"
然后你可以打开它并将mypackage
放到GitHub上。这将允许其他人使用go get
命令获取它,但他们将使用github.com
导入:
import "github.com/myuser/mypackage"
除非你想要导入导入my/custom/path/mypackage
的开源软件包,否则这样做非常好。在这种情况下,您应该考虑重构路径,以便使用与程序包用户相同的github导入路径。
答案 1 :(得分:3)
来自go help importpath
:
对于托管在其他服务器上的代码,导入路径可以是合格的 使用版本控制类型,或go工具可以动态获取 https / http上的导入路径,并发现代码所在的位置 来自HTML中的标签。
声明代码位置,表单的导入路径
repository.vcs /路径
使用指定包含或不包含.vcs后缀的给定存储库 命名版本控制系统,然后是里面的路径 库。支持的版本控制系统是:
Bazaar .bzr Git .git Mercurial .hg Subversion .svn
然后我相信您可以使用GitLab或GoGits设置自己的git服务器,然后您的导入路径将成为您的服务器域。
但是如果你有一个带github或bitbucket的私人仓库,那么你的包就可以了。只需运行正常的“go get”,您就会要求输入密码。
答案 2 :(得分:1)
对于未知的repo托管网站,go get
首先获取HTTP / HTTPS网址并检查其是否有链接到git / hg / bzr repo的元标记。