我已经启动了一个开源 MVC4 项目,它使用其他一些开源项目作为依赖项。我已经分叉了另一个项目,并将根据我的需要对其进行修改。我面临的问题是如何使这些项目相互依赖,但分开维护。然而 git pull 我的项目的人也会得到依赖项目吗?
- 我可以将其他项目中的所有相关代码猛烈抨击到我的存储库中,但这样我将无法为依赖项目的分支做出贡献。我将成为我的存储库的一部分。不是真的想那样做。
- 我可以完全单独维护其他项目并将 *.dll 文件复制到我的项目中。并将依赖的 dll 文件提交到 git 中。这很好,但我失去了同时开发两个项目的能力,以及在调试时进入依赖代码(好吧,如果复制 *.pdb 文件可能不会)
- 与第 2 点类似,我可以从依赖项目构建 nuget 包并将它们添加到我的主项目中——同样,不能真正同时开发两个项目,需要切换上下文。
- 有了一些魔法,有一个解决方案文件,它结合了我的存储库和依赖存储库中的项目。在每次构建时,将依赖的 dll 文件复制到 /lib 文件夹并提交它们。这样我就不需要在单独的项目之间切换上下文。但缺点是当其他贡献者 git pull 我的项目时,他们没有得到依赖项目,解决方案文件可能会被他们破坏,因为它会引用不在 repo 中的项目。
在这种情况下,您如何组织代码?