我的项目共享许多公共库,有时一个项目应该使用不同版本的代码库。我修补了一些库以纠正错误。
如何组织文件夹结构以使初始项目设置更容易?
保留代码库
要共享代码库,我们应该使用共享代码存储库,例如VCS存储库或仅共享文件夹。 为了更好地导航,请创建树结构,请使用如下所示的路径lib-namelib-name-version
。版本可以是版本号、版本名称、VCS 变更集 ID 或任何其他指示 lib 版本的字符串。如果要添加由您的版本修补或采用的库,请将其命名为lib-name-version-private
并添加PatchInfo.txt为其他开发人员描述您的更改。您还可以为库保留已编译的库 DCU 文件,而无需源代码。
库存储库结构示例:
+ superobject
| |- superobject-1.1
| +- superobject-1.2
+ synapse
| |- synapse-1.0
| |- synapse-r209
| +- synapse-r209-private
+indy
|- indy-9.0
+- indy-10.0.0.52
访问库/库路径
要允许任何开发人员将库保留在他想要的任何位置,请使用操作系统环境变量。 项目选项或 IDE 库路径中的 Delphi IDE/Lazarus IDE 可以在构建过程中将 $(env-var-name( 宏替换为 env var 值。 创建一个 env varPascalCommonLibs=D:PascalCommonLibs
,指定库存储库根目录的路径,然后将所需的库添加到库路径。
德尔福的库路径示例:
$(PascalCommonLibs)superobjectsuperobject-1.2
$(PascalCommonLibs)synapsesynapse-r209-private
拉撒路的库路径示例:
$Env(PascalCommonLibs)superobjectsuperobject-1.2
$Env(PascalCommonLibs)synapsesynapse-r209-private
现在,您甚至可以创建一个默认的库路径列表,每个开发人员都可以将其粘贴到IDE库路径中。
此方法还简化了自动生成配置,只需在脚本中使用 env varPascalCommonLibs
即可指定库或源搜索路径。