如何在没有文字bin,pkg和src目录的情况下构建Go?

时间:2018-02-07 12:14:37

标签: go build compilation

我是Go编程语言的新手。我希望如果可能的话,将Go代码集成到包含异构代码的现有代码中。我目前的代码组织是:

<reverse-TLD>/<component-path>/<code><extension>

其中:

  • &lt; reverse-TLD&gt; 是部分已撤消的域。例如,com.mydomain.mysubdomain
  • &lt; component-path&gt; 是代码所在的1个或多个子目录。例如,image/jpeg
  • &lt; code&gt; 是扩展程序之前的代码文件名的一部分。例如,jpeg2000
  • &lt; extension&gt; 是扩展程序。例如,.sh.py等。例如,上述其他元素采用的路径为com.mydomain.mysubdomain/image/jpeg/jpeg2000.go

请注意,Go文件以外的代码文件与Go文件位于同一目录中。

我的问题是:

  1. 我上面的现有结构不包括 src pkg bin 目录。是否有环境或Go env变量允许我指定这些目录?
  2. 目录&lt; reverse-TLD&gt;并且其下的所有文件都是只读的。我需要将编译的输出基于另一个目录,以$BUILD_DIR给出。该目录可以包含其下的任何目录。
  3. 我认为作为一种约定,我可以使用Go代码的小写文件名,它将成为可执行命令,Go代码的前导大写文件名将成为包对象。是否有最佳实践命名约定,以便在Go社区中进行区分?
  4. 我使用反向TLD有什么问题吗?例如,com.mydomain.mysubdomainmysubdomain.mydomain.com
  5. 如果 src pkg bin 目录是硬性要求,那么我想我必须编写一个找到的脚本转到文件并将它们复制到满足要求的临时目录,编译它们,然后将构建的工件移动到$BUILD_DIR。但是,我希望Go足够灵活,允许我这样做。

    如果可能的话,你能否告诉我在上述约束条件下编译所需的命令或环境变量?并且,对上述第1-4项的评论表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

反对Go的惯例并且不是推荐的做法