我正在努力将自定义测试任务拆分为构建和测试阶段(我想使用 Java 8 构建源代码并使用 Java 11 运行它们而无需重新编译(。 任务定义在此处
使用-x test
标志运行任务不会禁用测试。我希望能够从命令行完成所有操作,以便将任务作为 Jenkins 作业的一部分执行。
到目前为止,除了链接 5 个 bash 命令并将任务从--dry-run
添加到./gradle
命令,然后用-x
排除它们之外,我未能提出解决方案,但我相信一定有一种更优雅的方法。
如果我错过了一些提供答案所需的信息,请告诉我,我很乐意填写您。
如果我理解正确,您正在寻找的正是 Java 插件对其默认任务所做的:
compileTestJava
是负责编译测试的任务。test
是负责运行测试的任务,它表示对compileTestJava
的依赖关系
因此,您将以相同的方式对任务进行建模:
- 一个
JavaCompile
任务,配置了Java 8,用于编译测试。 - 一个使用 Java 11 配置的
Test
任务来运行测试,并依赖于上一个任务。
然后,Gradle的最新系统应该可以解决问题,即仅在JavaCompile
任务为最新时运行Test
任务。
为了仅运行测试编译,您将只调用匹配任务。假设它正确定义了自己的依赖项,它将只执行所需的操作。
如果需要有关如何定义这些任务的更具体指导,请向问题添加更多信息。