如何为 Gradle 任务创建别名?

How do I make an alias for a Gradle task?

作为 TDD 工作流的一部分,我希望能够检查我的 Java 代码库是否可以编译,但如果测试通过则不能。

目前,如果我 运行 gradle build 它 运行 是编译任务(对于源代码和测试),然后还执行测试任务(和 returns非零退出代码,因为测试失败)。

所以我发现我必须运行 gradle build -x test排除测试任务,并获得成功的零退出代码。

我要在 build.gradle 中添加什么来定义新任务,比如 compilebuild x test 的别名?

到目前为止我已经有了这个,但似乎 dependsOn 没有接受任何参数来自定义我要执行的 build 任务:

task compile {
    dependsOn build
}

我一直在阅读 the docs here,我看到了不同类型的依赖链机制,但不是 disable/exclude 特定任务。那么 -x 标志是如何工作的呢?我假设也有一种方法可以通过编程方式控制它。


感谢 和阅读文档,我实现了如下任务:

task compile {
    dependsOn classes
    dependsOn testClasses
}

您可以 运行 单独完成许多不同的任务。例如:

  • gradle classes: 将编译您的“主要”代码。
  • gradle testClasses: 将编译您的“主要”代码和测试代码。
  • gradle jar:将编译您的“主要”代码并将其 assemble 放入 jar。
以上

None 将 运行 您的单元测试。另一方面,build 任务依赖于上述所有内容,以及 test 任务等等。

一般来说,如果您喜欢 运行 一组特定的任务,您可以通过定义一个新任务然后依赖于您喜欢 运行 的其他任务来实现。您已经尝试过了,但是您应该使用 compileJavaclasses 之类的东西而不是 build 任何其他您需要的任务。但是请始终检查是否没有一个已经满足您的需求,就像在这种情况下一样。您可以在 Gradle java plugin.

的文档中了解 Java 项目中可用的任务