在 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
我正在尝试在 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