我的项目共享许多公共库,有时一个项目应使用不同版本的代码库。我对某些库进行了修补,以更正错误。
如何组织文件夹结构以简化初始项目设置?
答案 0 :(得分:0)
保留代码库
要共享代码库,我们应该使用共享的代码存储库,例如VCS存储库或只是共享文件夹。
为了更好地导航,请创建树结构,请使用类似lib-name\lib-name-version
的路径。版本可以是版本号,版本名称,VCS变更集ID或任何其他表示lib版本的字符串。如果您要添加补丁程序版本或您自己采用的库名称版本,则应使用lib-name-version-private
之类的名称,并添加PatchInfo.txt来描述其他开发者所做的更改。您也可以保留没有源代码的lib的已编译lib DCU文件。
示例libs存储库结构:
+ 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
访问库/库路径
要允许任何开发人员将库保留在他想使用OS Environment Vars的任何位置。在构建过程中,项目选项或IDE库路径中的Delphi IDE / Lazarus IDE可以将$(env-var-name)宏替换为env var值。
创建一个环境变量PascalCommonLibs=D:\PascalCommonLibs
,指定libs信息库根目录的路径,然后将所需的libs添加到Library Path。
Delphi的库路径示例:
$(PascalCommonLibs)\superobject\superobject-1.2
$(PascalCommonLibs)\synapse\synapse-r209-private
拉撒路的图书馆路径示例:
$Env(PascalCommonLibs)\superobject\superobject-1.2
$Env(PascalCommonLibs)\synapse\synapse-r209-private
现在您甚至可以创建一个默认的库路径列表,每个开发人员都可以将其粘贴到IDE库路径中。
此方法还简化了自动构建配置,只需在脚本中使用PascalCommonLibs
env var来指定库或源搜索路径。