delphi - 在项目之间共享 Delphi 源文件的最佳方式是什么?

标签 delphi msbuild build-process

在项目之间共享 Delphi 源文件的最佳方式是什么?

澄清:我们希望在多个 Delphi 项目中使用单个源文件。我们一直在使用 SCM 工具将同一个文件放入多个文件夹中,但这并不是一种 super 优雅的体验,我们也在考虑迁移到不支持此功能的工具。

在研究这个问题时,我考虑了几种不同的方法,但我想知道您在做什么以及如何找到自己的方法。

重要场景:

  • 编码时间
    • 添加新的共享依赖项应需要显式声明,以便管理共享。
    • 添加新的共享依赖项应该仍然相对简单;它不需要复杂的过程。
      • 如果有一个文件列出了项目(从外部)所有“导入”文件,那就太好了。
  • 编译时
    • 所有项目应始终使用一个当前版本(截至源同步状态加上本地编辑的当前版本)进行构建。
      • (在不同位置维护不同版本应该使用文件分支,这不是这里的主题。)
    • 每个项目是否应该能够使用不同的编译器设置(包括标志)影响共享文件的编译是有争议的。
      • 始终一致构建的源代码可以说更容易维护(即长期)。
      • 如果可以轻松地将上述更改的范围限制在一个项目内,则可以说更容易进行维护修复(即短期)。
  • 调试时
    • 当单步执行例程或设置断点时,应自动打开正确版本的源代码。
    • 编辑显示的源代码应该会影响下一个构建。
      • 我们不想针对源代码的临时副本进行调试:我们可能会在困惑中丢失代码。

注意事项:

  • 近期:
    • 哪种方法最容易实现?
  • 长期:
    • 什么方法最容易使用和维护?

提前感谢您的反馈!

马蒂亚斯

<小时/> --- 更新 ---

感谢您通过回答、评论和投票提供反馈!

我已经开始将共享文件放入一个“生产者”项目并将已编译文件列表导入到每个“消费者”项目中。这些项目正在与 MSBuild 链接在一起。一旦事情更加确定,我将编辑这个问题和“图书馆项目”答案,以分享我学到的东西。

敬请期待! (但是不要屏住呼吸;几分钟之内你就会窒息!:P)

最佳答案

使用源代码管理系统的文件共享功能

  • 优点:如果 SCM 系统支持,则设置快速且简单。
  • 优点/缺点:每个消费者项目都可以独立影响编译时间。
  • 缺点:在源的本地工作副本中没有官方位置。
    • 这可能会导致困惑。
  • 缺点:在 checkin 并重新检索之前,源更改不会反射(reflect)在其他位置。
    • 在 checkin 之前正确验证其他项目是可能的,但非常痛苦。
  • 缺点:并非所有 SCM 系统都支持共享文件。
    • Subversion 最接近的功能是文件夹级 svn:externals。

(编辑:重新命名以避免混淆。当然,每个人都应该使用源代码管理!:-) )

关于delphi - 在项目之间共享 Delphi 源文件的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/259673/

相关文章:

delphi - 如何写入控制台窗口进行调试?

delphi - 在 Delphi 中,有没有办法查看组件的所有引用和链接?

delphi - 如何在 Delphi 中使用应用程序恢复和重新启动?

node.js - 无法安装node-gyp

Msbuild 只生成一个包,但在使用发布配置文件时不会部署它。为什么?

javascript - 在创建 WAR 之前使用 gradle 添加生成的文件

delphi - 在 Delphi 中使自定义拖动图像不透明

visual-studio-2010 - Web Deploy打包在我的构建服务器上不起作用

perl - automake + autoconf 的质量指南和构建过程的其他复杂性?

javascript - 有没有办法在 gulpfile.js 中动态设置 src 和 dest?