单独模块中的命令

时间:2016-05-23 04:51:06

标签: go

查看go工具源代码后,阅读此SO答案(和链接文章): What is a sensible way to layout a Go project(将二进制文件与您的应用程序分开)

E.g。以下设置:

myapp/
  cmd/
    first/
      main.go
    second/
      main.go
    third/
      main.go
  otherpackage/

我很好奇你将如何实施/构建/调试这样的解决方案?

我应该在根目录中有一个main.go,然后以某种方式执行cmd目录中的不同包,具体取决于用户运行的命令?或者如何在root中没有'main'包构建这个多命令包?

1 个答案:

答案 0 :(得分:1)

根软件包中不需要if(!isset($_SESSION['c_id'])) { header("Location: /login_page.php"); // exit(); } 。如果您进入myapp文件夹并运行main.go,则Go将递归搜索子文件夹中的go install ./...函数。

对于不同包中的每个main()函数,Go将在包含所有必需包的单个可执行文件中编译它。在您的示例中,它将生成三个二进制文件:main()firstsecond

关于实施/调试,你只需按常规方式进行。也就是说,您使用标准测试逐个实现和测试您的软件包。如果要测试已编译的二进制文件,可以使用third结构。

此外,如果您需要好看的命令,可以使用某些第三方库,例如cobracli