在go中将main移出存储库根目录
我正在go中创建一个项目。因为在项目文档的存储库README.md的根目录中已经有很多东西,所以我希望所有的源代码都放在src文件夹中,所有的测试代码都放在test文件夹中:在go中将main移出存储库根目录,go,Go,我正在go中创建一个项目。因为在项目文档的存储库README.md的根目录中已经有很多东西,所以我希望所有的源代码都放在src文件夹中,所有的测试代码都放在test文件夹中: \go \src \github.com \user \my_project \src main.go some_func.go \test test_main.go
\go
\src
\github.com
\user
\my_project
\src
main.go
some_func.go
\test
test_main.go
test_some_func.go
\doc
README.md
但我有两个问题:
当我在my_项目文件夹中时,“生成”命令不起作用。我必须进入my_project/src才能成功运行构建。我想从my_项目文件夹中执行此操作。如何增强go理解my_项目的源代码在src代码中?
然后,go install命令生成的可执行文件名为src。如何更改该可执行文件的名称?
我希望所有源代码都放在src文件夹中,所有测试代码放在test文件夹中:
\go
\src
\github.com
\user
\my_project
\src
main.go
some_func.go
\test
test_main.go
test_some_func.go
\doc
README.md
Go有一种组织源代码的方式。不要与此抗争。这就是系统的工作原理。按照Go希望的方式组织代码。不要试图强迫你按照你用其他语言学习的方式去工作。每种语言都有自己的做事方式。没有一个是正确的。像Java一样,Go对您应该做什么有非常具体的想法。那样做。这并不是关于围棋是对还是错的争论。前进就是前进,它以前进的方式做事
特别是,您不应该创建另一个src目录。go树的顶部已经有一个src目录。如果创建另一个冗余的src目录,则项目的包名为github.com/user/my_project/src,这可能不是您想要的
要使可执行文件名为所需名称,请将其放在名为所需名称(可能是my_project)的目录中。将测试文件与其测试的文件放在一起。这就是go的工作原理
因此,您的树应该如下所示:
\go
\src
\github.com
\user
\my_project
main.go
some_func.go
main_test.go
some_func_test.go
\doc
README.md
尝试做除此之外的事情会一次又一次地失败,我如何让构建系统做这件事的问题会不断地返回,以构建系统期望的方式放置代码
有关Go期望的内容以及应如何组织代码的详细信息,请参阅命令Go文档中的。一旦您以这种方式构建了一段时间的系统,您将开始看到哪里可以偏离它,就像为测试实用程序创建其他目录一样,而不是测试用例。在您尝试过标准方式之前,不要开始偏离方向。非常感谢。这是我不希望得到的答案,但绝对感谢您花时间回答^^