我在go封面工具中添加了一个新的开关(-xml)来生成一个可由Atlassian三叶草消费的XML文档,因此我们的go项目的竹版本可以报告简单的覆盖率统计。我希望使用go get <importpath>可以使用构建代理访问此本地版本。
这些是我尝试过的步骤:
- setup $GOPATH
- created $GOPATH/src/stash.example.com/scm/x
- cd $GOPATH/src/stash.example.com/scm/x
- git clone --bare https://go.goolesource.com/tools
然后基本上遵循将现有git项目导入存储的步骤,如https://confluence.atlassian.com/display/STASH/Importing+code+from+an+existing+project#Importingcodefromanexistingproject-ImportanexistingGitprojectintoStash中所述
如果我然后'rm -rf tools'后跟'go get -d stash.example.com/scm/x/tools',我会收到“无法识别的导入路径stash.example.com/scm/x/tools”。如果我输入'go get -d stash.example.com/scm/x/tools.git'(提供vcs提示去获取),它会起作用,但生成的子目录名为'test.git'。在路径中提供vcs提示的替代方法是从存储服务器返回html中的<meta>标记,但我不知道如何创建它。
我应该补充说'cd $ GOPATH / src / stash.example.com / scm / x'+'git clone http://[email protected]/scm/x/tools.git'按预期创建tools子目录。
我必须在防火墙内的本地服务器上托管这个,所以github不是一个选项。有什么建议?
curl http://stash.example.com/scm/x/tools
会产生什么?哪些服务器正在监听stash.example.com
?通常,go get
-able路径或者包含一个带有后缀的组件,表示所使用的版本控制系统(例如example.com/repository.git/package
)或某个元标记存在于其中一个目录层中,告诉go get
从何处获取源。
go get
是一个不成熟的机制,如果我没记错的话,当服务器需要身份验证时,它不适用于git。
看看here有关导入路径如何与go get
一起使用的相关文档。我不打算引用它,因为它很长,不太可能下降,你可以通过安装godoc
并运行在本地机器上检索它
godoc -http=:8080 # or some other port
然后将浏览器指向
http://localhost:8080/cmd/go/#hdr-Relative_import_paths.