最近,我们的构建时间一直在不断变化。我们的基线在1-2分钟之间,但现在有时可能需要20分钟。我一直在努力寻找原因,但是遇到了一些麻烦。感觉像是在构建时触发通量变化的更改是完全任意的,或者至少我找不到它们之间的潜在联系。
现在看来,问题似乎出在任务执行时间上,因此让我们更详细地看一下:
这表明umlgen-transformer项目的测试任务是罪魁祸首。这个项目与大约1分钟内建立的项目之间的唯一区别是一个微小的xml文件。每个单元测试都将读取该xml文件作为输入。这是典型的测试结果:
@Test
def void testComponentNamesUpdated() {
loadModel("/testData/ProducerConsumer.uml")
val trafo = new ComponentTransformation
trafo.execute(model)
val componentNames = model.allOwnedElements.filter(Component).map[name]
assertThat(componentNames).contains(#{"ProducerComponent", "ConsumerComponent"})
}
(。uml文件只是存储为xml的UML模型)。我不认为这是导致构建时间增加的根本原因,原因有几个:1)xml文件非常小,大约200kb 2)单元测试中的行为极其简单并且执行速度非常快3)当单元测试通过Eclipse运行时,它们会在几秒钟内执行4)无关方面的构建时间,例如编译kotlin代码的时间,也显着增加了5)这不是我们遇到这个问题的唯一项目
我尝试过的事情:
我现在才使用Gradle几个月,所以我希望获得更多确定性方法的反馈,以了解gradle在做什么(或找到某种方法将其排除在可能的原因之外)。请让我知道是否有任何其他信息会有所帮助。