Gradle过多的源代码重新编译

时间:2014-12-15 11:40:30

标签: gradle teamcity build.gradle

使用三个gradle步骤运行TeamCity构建时遇​​到问题。

步骤包括:组装,测试,上传档案。

Gradle在每个步骤执行时重新编译源代码(似乎必须 - 每个执行单独运行) - 最终总计 10 分钟。当一步执行任务时,它只会 3 分钟。

“测试”和“上传档案”步骤中的大部分日志输出都是最新的

:project-api:compileJava UP-TO-DATE

但在真正开始上传工件之前,在“上传步骤”中完成所有过多操作仍需要2分钟。

我不能只配置任务“dependsOn”,因为有时“上传”可以不用“测试”等等。我试图增加 resolutionStrategy.cacheChangingModulesFor ,但似乎不是这个选项。

有没有办法避免任务执行拆分的这些开销?

1 个答案:

答案 0 :(得分:0)

正如评论中提到的,问题是由TeamCity构建步骤的分离引起的 - 每个步骤执行都是隔离的,这就是为什么Gradle不能使用前面步骤中的缓存信息。

我通过在单个构建步骤中组合这三个构建步骤并添加适当的dependsOn关系来解决它。正如您所看到的,我希望避免从UploadTest的依赖,但在这种情况下这是不可能的。