我在golang中本地构建了一个小应用程序。
我的目录结构如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
gocode/
      src/
          github.com/
                    travel/
                          config/
                          server/
                          routes/
                          main.go

      pkg/
          linux/
               github.com/
                    // projects with .a extension
               golang.org/
                         x/net/
                         x/oauth2
      bin/

我浏览了许多文档,其中指出最佳实践是仅将/ src文件夹推送到github。

我对不在/ src目录中的golang.org/x/net之类的软件包的处理方式感到困惑。

因此,我们还需要在生产服务器中运行go import" net / http"并创建可执行二进制文件。

我来自nodejs,所以就像在nodejs中进行" npm install"一样。但是,在节点情况下,我们有一个package.json文件。
无论如何,请帮助我解决这个困惑。

  • 您正在寻找的是依赖性管理。 签出go dep,滑行和govendor。
  • Golang依赖性管理最佳做法的可能重复

您只能推送src/github.com/travel目录的内容。 当有人要下载您的软件包时,go get为您处理依赖性解析。 看一下logrus之类的东西。 运行go get github.com/sirupsen/logrus将下载生成软件包所需的所有依赖项。 这包括您的任何golang.org/x/软件包。

  • 因此,从github克隆后,我们只需运行go get -v。/ ...并安装所有依赖项,然后按照这种方式创建二进制文件。
  • 应该是的。