在 Travis CI 中构建多模块 gradle 项目

Building multi-module gradle project in Travis CI

我正在尝试在 Travis CI 和 运行 所有子项目的所有测试中构建一个多模块 Gradle 项目。默认情况下 运行ning 从顶级 build.gradle 文件构建似乎构建了所有子模块和 运行 所有测试,但 Travis 将其视为失败。理想情况下,我还想合并来自所有子项目的 Jacoco 测试覆盖率报告。

我试图让这个工作的项目是开源的,可以在这里看到:https://github.com/Tenkiv/Physikal

为了了解您的问题,我克隆了存储库并尝试在我的本地计算机 (ArchLinux) 上 运行 gradle,就像 Travis 尝试的那样:

./gradlew build

我收到了完全相同的错误消息:

Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

这真的很奇怪,我以前从未见过。所以我问自己:gradle 在哪里搜索那个 class?对,在包装器的 jar 文件中。那似乎是空的:

$ ls -lh gradle/wrapper/
total 4.0K
-rw-r--r-- 1 msrd0 users   0 Sep 16 23:51 gradle-wrapper.jar
-rw-r--r-- 1 msrd0 users 230 Sep 16 23:51 gradle-wrapper.properties

TL;DR

无论发生什么,您下载的 gradle 包装器都是空的。您需要再次下载包装器,在 Linux 上您可以使用此命令(假设您已安装 gradle):

gradle wrapper

如果您的本地 gradle 发行版很旧并且您想保留当前在您的存储库中使用的版本,运行:

gradle wrapper --gradle-version=4.1