【发布时间】:2019-01-30 10:13:36
【问题描述】:
我正在处理使用 gradle build-cache 和 composite builds 的奇怪行为。 我有一个仓库,其中有 3 个独立项目:
- 应用程序
- 模拟
- 集成测试
集成测试包括 2 个构建 - 模拟和应用程序,并将这两个服务作为 java 应用程序启动(取决于两个项目的 jar 任务)。
在本地运行
在本地运行时,一切似乎都很好(也使用构建缓存),但在集成机器上,发生了一些奇怪的事情。
集成测试
我们用的是gitlab,pipiline还是挺简单的:
---|-- junit-mocks --|--- integration-tests
|-- junit-app ----|
junit mocks 和 junit app 并行(带有构建缓存),下一阶段是 int-testing,其中从 build-cache 加载 app 和 mocks 的 java 编译。 (如附图所示)。
该错误只是一个结果,即未找到 Main 类(奇怪#1)。当我查看 jar 文件时,它确实是半空的,缺少很多类,但静态资源在那里。当我查看 gradle 的 build/classes 目录时,它完全是空的。好像缓存被命中了,但是类没有被复制?
奇怪#2:是模拟已成功构建(并启动),但不是应用程序。
当我关闭构建缓存时,构建通过了。
有什么可能导致问题的想法吗?
【问题讨论】: