java - 如何为 Gradle 任务创建别名?

标签 java gradle build build.gradle workflow

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

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

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

我应该在 build.gradle 中添加什么来定义新任务,例如 compile 这是 build x test 的别名?

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

task compile {
    dependsOn build
}

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

<小时/>

感谢Bjørn Vester's answer阅读文档后,我已经实现了我的任务,如下所示:

task compile {
    dependsOn classes
    dependsOn testClasses
}

最佳答案

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

  • gradle 类:将编译您的“主”代码。
  • gradle testClasses:将编译您的“主”代码以及测试代码。
  • gradle jar:将编译您的“主”代码并将其组装到 jar 中。

以上都不会运行您的单元测试。另一方面,build 任务取决于上述所有内容,以及 test 任务等等。

一般来说,如果您想运行一组特定的任务,您可以通过定义一个新任务,然后与您希望与其一起运行的其他任务建立依赖关系来实现。您已经尝试过,但您应该使用诸如 compileJavaclasses 之类的东西来代替 build ,无论您需要什么其他任务。但请务必检查是否没有一个已经可以满足您的需求,就像本例中一样。您可以在 Gradle java plugin 的文档中了解 Java 项目中可用的任务。 .

关于java - 如何为 Gradle 任务创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111982/

相关文章:

java - 更改 float 操作按钮背景

java - 使用 VLCJ 从 mac osx 上的摄像头捕获视频

java - 如何 "try start"一个线程从几个其他线程,java

build - 在您的应用程序构建中包含 QML 源的首选方法是什么?

java - 如何用不同的 Controller 编译使用相同应用程序文件的多个 jar

java - 石头剪刀布 Java 游戏

java - 将插件添加到本地jar的gradle buildscript中

gradle - 在所有包含的版本中执行特定任务的任务

spring - 是否可以同时在多个 Spring Boot 应用程序上运行集成测试?

text - 在 Gradle 中正确显示 UTF-8 文本