【问题标题】:How do I make an alias for a Gradle task?如何为 Gradle 任务创建别名?
【发布时间】:2020-05-23 12:05:16
【问题描述】:

作为 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
}

【问题讨论】:

    标签: java gradle build build.gradle workflow


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 啊,我明白了,我认为build 依赖于其他任务,但找不到具体的列表。感谢您提供文档链接,立即阅读。
    • 感谢您的帮助!原来我不需要首先使用build,因为我不需要jar 可执行文件。用我最终得到的最终任务代码更新了我的问题。
    • 小修正:jar任务产生的.jar文件默认不可执行。
    • 你说得对,我说错了可执行部分。这些天我使用 Spring Boot 太多了 :)
    猜你喜欢
    • 2015-07-13
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多