使用三个gradle步骤运行TeamCity构建时遇到问题。
步骤包括:组装,测试,上传档案。
Gradle在每个步骤执行时重新编译源代码(似乎必须 - 每个执行单独运行) - 最终总计 10 分钟。当一步执行任务时,它只会 3 分钟。
“测试”和“上传档案”步骤中的大部分日志输出都是最新的
:project-api:compileJava UP-TO-DATE
但在真正开始上传工件之前,在“上传步骤”中完成所有过多操作仍需要2分钟。
我不能只配置任务“dependsOn”,因为有时“上传”可以不用“测试”等等。我试图增加 resolutionStrategy.cacheChangingModulesFor ,但似乎不是这个选项。
有没有办法避免任务执行拆分的这些开销?
答案 0 :(得分:0)
正如评论中提到的,问题是由TeamCity构建步骤的分离引起的 - 每个步骤执行都是隔离的,这就是为什么Gradle不能使用前面步骤中的缓存信息。
我通过在单个构建步骤中组合这三个构建步骤并添加适当的dependsOn
关系来解决它。正如您所看到的,我希望避免从Upload
到Test
的依赖,但在这种情况下这是不可能的。