如何组织 Golang 项目目录,使一个项目包含多个 main 入口程序

发布时间: 2020-05-28 10:40:07 作者: 大象笔记

真实需求场景

例如,我在写一个分析百度统计实时访客历史记录的系统,其包含的基本模块:

测试项目根目录下是否可以共存两个 main 入口程序

先不管网上的那些 golang 代码组织策略,单纯的测试一下是否可以在项目根目录下共存两个 main 入口程序。

测试方法:

运行 go build,果然报错:

> go build
# golog
./main.go:7:6: main redeclared in this block
        previous declaration at ./import_log.go:19:6

这说明同一个目录下只能有一个 main 函数。

在不同目录下新建两个 main 函数呢

我的几个疑问:

测试方法:

这种方法确实可行。

测试结果:

到目前为止,独立一个 cmd 目录已经满足了我当前项目的需求。

但是,需要再发散一下。

golang 项目中包含多个工具命令呢

如果多个工具命令都包含在一个 cmd 中,还是会出现最初的 main redeclared 问题。

那就需要在 cmd 下再建子目录。

参考

我是一名山东烟台的开发者,联系作者