作为 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
任务等等。
一般来说,如果您想运行一组特定的任务,您可以通过定义一个新任务,然后与您希望与其一起运行的其他任务建立依赖关系来实现。您已经尝试过,但您应该使用诸如 compileJava
或 classes
之类的东西来代替 build
,无论您需要什么其他任务。但请务必检查是否没有一个已经可以满足您的需求,就像本例中一样。您可以在 Gradle java plugin 的文档中了解 Java 项目中可用的任务。 .
关于java - 如何为 Gradle 任务创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60111982/