Go 我应该如何构建一个简单的围棋项目?

Go 我应该如何构建一个简单的围棋项目?,go,Go,我有一个非常简单的Go项目,我正在尝试对其进行重组,使其遵循正常的Go项目结构(因此我可以运行Go build) 我目前有两个源文件,都带有packagemain。所有文件,包括我的程序在运行时需要的一些文本配置文件 所以现在,它看起来像: <project_name> - main.go - source2.go - config_file.txt 然后我希望能够运行go build(当我在该项目的目录中时),并让它编译该项目。这可能吗?中描述了组织Go代

我有一个非常简单的Go项目,我正在尝试对其进行重组,使其遵循正常的Go项目结构(因此我可以运行
Go build

我目前有两个源文件,都带有
packagemain
。所有文件,包括我的程序在运行时需要的一些文本配置文件

所以现在,它看起来像:

<project_name>
    - main.go
    - source2.go
    - config_file.txt
然后我希望能够运行
go build
(当我在该项目的目录中时),并让它编译该项目。这可能吗?

中描述了组织Go代码的“规范”方式。这是以一种不太正式的方式解释的。这个概念与您的想法相反——您有一个工作区目录,由GOPATH环境变量指定,所有项目的源代码都驻留在工作区“src”目录的子目录中。如果在GOPATH中指定多个目录,则可以有多个工作区

我建议你给“推荐”的方式来组织你的代码一个机会,也许它会对你产生影响。这似乎有点不寻常,但它有它的优点。如果你发现你绝对不能接受它,你仍然可以解决它,例如,通过在脚本中以友好的方式设置GOPATH


至于Golang IDEA插件,我不久前尝试的上一个版本还不支持这个项目结构,但新版本可能已经改变了这一点。事实上,该插件的一位作者(dlsniper)在上面的博客文章中添加了一条评论,给出了仍然使用全局GOPATH的替代项目结构的示例。

注意,您可以始终将您的
GOPATH
指定为可能存在非Go项目的目录。Go只会忽略它们。对,但我不想为我所有的Go项目都有一个通用的src文件夹。这很正常:src/
是如何运行的。不要认为
src
文件夹包含一堆乱七八糟的代码:它只是包源代码的集合(而不是二进制文件或头文件)。我的GOPATH包含一堆我下载的不同软件包的
github.com/user/
文件夹,一堆我下载的其他软件包的
code.google.com/project
文件夹,当然还有我自己的项目。我把我自己的项目符号化到一个更容易访问的地方,而不必弄乱我的GOPATH,这样做会更容易一些。我最终把我所有的开发项目(去还是不去)都放在了GOPATH中。文件夹/文件结构非常方便,我所有的git存储库都放在一个地方,现在只有一个统一的结构。很好。
projects/
    - project 1/
         - src/
         - bin/
         - pkg/
    - project 2/
         - src/
         - bin/
         - pkg/