如何在git中干净地构建一个依赖于另一个项目的工件的项目

时间:2013-08-08 23:58:31

标签: git teamcity

如果我有两个项目,一个输出.dll和.lib存根,另一个链接到.lib存根,并且通过扩展在运行时使用生成的.dll,如何设置我的TC构建系统和GIT存储库干净利落:

  1. 允许用户签出客户端应用程序,构建它并运行它而无需查找最新的.dll / .lib文件
  2. 保持客户端应用程序的官方构建和TC构建同步;如果我签出并在本地运行,它的行为与TC构建版本相同,使用相同的.dll和.lib
  3. 我最初的想法是在客户端应用程序中使用相应的.lib和.dll文件(如第三方二进制文件),然后在建立新的.dll时由TC检入;让TC 推入git有点奇怪,但似乎它可能有用。或者,我可以在解决方案的预构建步骤中获得逻辑,以便获取最新的二进制文件,我更喜欢这个,因为构建用户可能没有TC的凭据,他们实际上可能不想获得最新版本。

    如果第一个解决方案是可行的,那么TC是否可以轻松获得支持?或者我是否必须在构建过程中进行全面检出,更新,添加/提交,推送?我没有考虑过这些解决方案是否有任何陷阱?

1 个答案:

答案 0 :(得分:0)

您可以拥有一个脚本,该脚本将从TeamCity构建配置中在开发人员计算机上下载库。该脚本将在本地使用。另请参阅http://confluence.jetbrains.com/display/TCD8/Patterns+For+Accessing+Build+Artifacts

在服务器上,您可以使用快照+工件依赖关系来继续构建这些项目:http://confluence.jetbrains.com/display/TCD8/Build+Dependencies+Setup

快照依赖项提供源同步,因此如果您更改库中的某些API并同时在依赖项目中使用它,您可以确保TeamCity将正确构建它。