【发布时间】:2012-01-04 22:02:50
【问题描述】:
我的问题归结为这个基本案例:我们的解决方案有两个项目,A 和 B,然后项目 C 将其包含到其构建过程中。
当有人推送到项目 A 或 B 时,Jenkins 使用 MSBuild 构建项目,归档工件,然后启动 C 的构建。
当 C 开始时,它有四个“复制工件”任务需要运行:首先,它将工件从 A 复制到 .\A\obj\Release\,然后复制相同的工件 进入 .\A\bin\Release。然后它对项目 B 重复。然后它自己构建。
没错:对于 C 所依赖的每个项目,Copy Artifacts 都必须运行两次,否则 MSBuild 会检测到某些内容已过时,并且整个内容都是从头开始构建的。
有没有更简单的方法来做到这一点?我可以将一个参数传递给 MSBuild(或配置 .csproj),上面写着“只构建这个项目,假设其他项目二进制文件是最新的,无论时间戳如何”?有没有更好的插件可以帮我解决这个问题?
在我们有近 20 个不同项目且它们之间存在分层依赖关系的实际案例中,这真的很烦人(并且令人困惑)。
【问题讨论】: