0

我是 Go 新手,正在努力寻找处理 Git 存储库的最佳方法。

目前我正在使用 Go 官方提出的目录结构,但我认为它有很多陷阱。

有点像

$GOPATH
  bin
    non-important-stuff
  pkg
    non-important-stuff
  src
    github.com
      username
        reponame

情况是我有很多非代码资源,比如默认设置文件、html 模板和图像......但对我来说将它放在“src/github.com/username/reponame”目录中似乎有点奇怪(因为第一个“src”部分)。

这个问题最常见的解决方案是什么?

我现在面临的另一个问题是,我不知道使用默认设置文件或 html 等外部资源构建整个项目的最常见的“make”工具(“go build/install”命令只处理源代码文件)。当可执行文件被“安装”时,你如何处理相对路径?

免责声明:我已阅读此线程:如何在“go”工具安装可执行文件后访问资源文件?,但我没有看到可靠的解决方案。我的可执行文件是服务器,每次我想重新配置服务器时都不能嵌入设置文件并重新编译(也不能通过执行参数传递所有设置参数,因为设置文件非常复杂) .

4

1 回答 1

1

我假设您正在谈论 Web 开发。

正如您正确指出的那样,目录结构适用于代码,而 go 工具套件仅负责构建二进制文件并将它们放在常规位置(pkgbin)。

您想要的是二进制 + 资源文件的完整部署过程。

您应该滚动自己的部署过程,或使用现有框架。

自制程序的草图:

  • 将所有资源放在项目中的特定目录下(例如resources/
  • 用于git archive resources/捆绑文件
  • 复制可执行文件旁边的文件
  • 选择一种方式来调整本地参数(数据库服务器、数据库名称等)
  • 选择一种方法让您的服务器重新加载资源(重新启动服务器/系统地重新读取资源/检查修改日期/...)

如果您正在寻找现有的 Web 框架:

Revel是一种选择,它处理了很多问题,其中包括开发期间的热重新编译和部署过程

于 2013-06-13T15:34:41.060 回答