在所有子项目中的所有测试之前,先在子项目中运行检查样式



我有 4 个子项目的 gradle 项目。我有当前的根 gradle.build 与检查样式:

allprojects {
apply plugin: "checkstyle"
checkstyle {
...
}
}

所以当我在主文件夹中运行 ./gradlew build 时,我得到下一个: 检查第一个子项目的样式,然后进行测试。然后它为第二个子项目运行 checkstyle,然后测试第二个子项目,依此类推。

问题是:如果我在第一个子项目中进行了长时间的测试,我可以等待很多时间,然后发现我在第 4 个项目中有 2 个空格,所以 checkstyle 失败了,但我等待了很长时间。

我真正想要的: 为所有子项目运行所有检查(checkstyle,我也有pmd(,然后在所有子项目中运行所有测试。这将为团队中的每个人节省大量时间。

我可以这样做,除了制作 2 个不同的管道,并分别运行它们吗?比如:./gradlew allMyCheckstyles && ./gradlew build。 我很想只使用 ./gradlew build 谢谢!

我尝试了许多依赖项,runAfter,但没有成功。

抱歉,这个答案的先前版本误解了这个问题的要求。

这是一个应该可以执行所需操作的解决方案:


// Create a lifecycle task in the root project.
// We'll make this depend on all checkstyle tasks from subprojects (see below)
def checkstyleAllTask = task("checkstyleAll")
// Make 'check' task depend on our new lifecycle task
check.dependsOn(checkstyleAllTask)
allProjects {
// Ensure all checkstyle tasks are a dependency of the "checkstyleAll" task
checkstyleAllTask.dependsOn(tasks.withType(Checkstyle))
tasks.withType(Test) {
// Indicate that testing tasks should run after the "checkstyleAll" task
shouldRunAfter(checkstyleAllTask)
// Indicate that testing tasks should run after any checksytle tasks.
// This is useful for when you only want to run an individual
// subproject's checks (e.g. ./gradlew ::subprojA::check)
shouldRunAfter(tasks.withType(Checkstyle))
}
}

文档在这里和这里

相关内容

  • 没有找到相关文章

最新更新