如何将go代码添加到现有项目中

如何将go代码添加到现有项目中,go,gopath,Go,Gopath,我是新来的。我们目前正在从我们的整体Django+python web应用程序中剥离一些微服务,我们已经决定在go中至少做一些。问题在于,这些服务的来源应该与主应用程序位于同一个回购协议中。因此,我在~/gloriousmomoolith/thedjangoapp中包含了所有python代码,并在~/gloriousmoolith/services/some service name中分离了服务 我可以在~/src下移动~/GloriousMonolith(我将$GOPATH设置为$HOME),

我是新来的。我们目前正在从我们的整体Django+python web应用程序中剥离一些微服务,我们已经决定在go中至少做一些。问题在于,这些服务的来源应该与主应用程序位于同一个回购协议中。因此,我在~/gloriousmomoolith/thedjangoapp中包含了所有python代码,并在~/gloriousmoolith/services/some service name中分离了服务


我可以在~/src下移动~/GloriousMonolith(我将$GOPATH设置为$HOME),但每次我引用我创建的go包时,我都必须执行导入gloriousmoolith/services/someservice/somespackage。我想避免这种情况。至少,我希望避免在任何地方使用
gloriousmomomolith
part硬编码。有什么建议吗?

您可以将Go源目录添加到项目中。例如:

~/
   GloriousMomolith/
      thedjangoapp/
      src/
         services/
            someservice/
               service.go
GOPATH
设置为
$HOME/gloriousmomomoolith:$HOME

现在可以相对于
src
目录导入:

import (
   "services/someservice"
)

你能不能把这些包放到别的路径上?如果你不想让它被关联,为什么要把源头放在荣耀的摩门教徒身上?我想让它被关联。但实际的GloriousMomolith名称是任意的,在不同的环境中是不同的。这只是我克隆回购协议的地方。所以我不想在任何地方硬编码。我没有意识到我的$GOPATH中可以有多条路径。谢谢你的建议。我想我将使用services/src/servicename,并将~/gloriousmomoolith/services添加到我的GOPATH中。请记住,虽然在您的
$GOPATH中有多个路径是可能的,但它往往会弄脏东西。
$GOPATH
的目的是为您的所有项目提供一个单一的目录,任何许多工具和说明都假定您在该变量中只有一条路径,并且/或者在第一条路径之后无法很好地处理路径(例如,
go-get
始终安装到变量中的第一个路径,没有改变该行为的选项)。