可以从私有的subversion存储库golang import package吗?

时间:2012-10-24 08:26:16

标签: git svn go

我们知道golang支持来自着名代码托管网站的导入包,例如github,google代码等,但我想弄清楚golang是否支持从我的私有subversion / git存储库导入包?如果golang支持这一点,那么在项目之间共享一些共同的包会变得更容易。

一个理想的例子:

package main

import "192.168.12.13/trunk/share/foolib"

func main() {
   ....
   foolib.xxxx...
}

2 个答案:

答案 0 :(得分:6)

是的,您可以从私有存储库导入代码,运行go help importpath获取说明。

然而,这是一个两阶段的方法:首先获取代码,然后将其编译到项目中。

您的示例表明您要导入远程代码(因此,基本上是一个阶段的过程),我怀疑这是可能的

答案 1 :(得分:2)

如果它是一个私人存储库,那么你几乎肯定会手动管理它。

对于subversion使用subversion external;对于git使用子模块等。

go get ...

是一个有用的工具,但是一旦开始使用已关闭的签名内部存储库,您可能会遇到困难;由于大多数非愚蠢的源代码控件已经支持这种类型的“子模块”功能,你可能最好使用你使用的任何源代码控制的工具并将自定义子模块导入到你的'src'目录中,然后,如上所述,使用以下方式导入:

import mylib "modules/xxx/trunk/src/blah" 

...而不是试图强迫去做所有的事情。