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