源代码结构:部署Go with Subpackages

时间:2015-09-13 03:20:02

标签: amazon-web-services go elastic-beanstalk

当只有一个存储库并且它只导入公共依赖项时,部署到(例如,AWS上的Docker容器)非常简单。

但是,我有一个关于如何使用go的子包的问题。

假设我们有3个包的monorepo。

/src
- /appA
- /appB
- /someSharedDep

如何构建部署以便将appA和someSharedDep部署到另一台服务器上的appB和someSharedDep?

我想我们的朋友GOPATH需要有一些创造性的工作,但是对这个主题的一些帮助将不胜感激。

如果我们正在谈论弹性beanstalk部署,那么就会获得积分。

猜疑

我对如何解决问题有一些想法(如果这个问题变得更加完整,我会添加更多或提交答案)。

  1. 使用vendoring,这意味着您将所有依赖项的源代码都签入到您自己的仓库中。它听起来并不好(特别是如果你习惯使用NodeJS),但它有效。
  2. 现在您使用vendoring,将您自己的子模块提供给应用程序中的./vendor文件夹。是的,你会在两个地方都有相同代码的副本,但无论如何。
  3. 创建自动脚本以帮助管理其中的一些内容。我还在寻找能让售卖更方便的工具。
  4. 我仍然面临一些问题:

    1. 在进行销售时,有时依赖项具有main()函数或声明package main的文件,通常位于./example子文件夹中。这些必须手动删除。我不喜欢编辑别人的项目的工作来源!

0 个答案:

没有答案