当前位置: 首页 > 知识库问答 >
问题:

自定义Gradle任务来构建所有项目而不进行测试?

梁烨
2023-03-14

我知道我可以执行“Gradle Build-X测试”,但是有没有一种方法可以创建一个自定义的Gradle任务,比如说,buildNoTests,它将构建我的所有项目,但将完全忽略测试(不编译/运行它们)?

我读到'assemble'任务是不够的,因为它可能会错过其他不是测试但包含在'build'任务中的任务。

共有1个答案

祝俊雄
2023-03-14

将其放入根build.gradle

allprojects {
    afterEvaluate {
        def buildTask = tasks.findByPath('build')
        if (buildTask) {
           task buildNoTests {
               dependsOn buildTask
           }
           gradle.taskGraph.whenReady { TaskExecutionGraph graph ->
               if (graph.hasTask(buildNoTests)) {
                   def skipNames = ['test', 'compileTestJava', 'processTestResources', 'testClasses'] as Set
                   Collection<Task> testTasks = graph.allTasks.findAll { skipNames.contains(it.name) }
                   testTasks.each { it.enabled = false }
               }
           }
       }
    }
}
 类似资料:
  • 我想写一个Gradle任务,在我所有的子项目中共享。此任务在调用它的子项目中查找所有其他类型为“GenerateMavenPom”的任务,并执行这些任务。 通过这样做,我的子项目可以定义他们想要的任何Maven发布,我可以使用“gradle GenerateMavenPomFiles”等单个任务执行gradle来创建pom.xml,而不需要知道每个子项目中的单个发布类型。为什么?因为Maven插件

  • 我有以下多模块项目结构。 当我为/builder子项目运行任务时,我希望所有子项目都会执行任务(对于

  • 在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成一个测试报告。我观察到的是,它从来没有在子项目上运行测试任务。我的期望是不正确的吗?“我需要在我的gradle脚本中进行任何特殊配置吗? 请注意,我的根项目中没有测试。

  • 我试图在Android Studio/Eclipse中构建和导入Android项目。我的目标是为当前项目编写自动化测试。首先,我试图构建这个项目,然后制作一个apk文件,这样我就可以在它上执行真正的设备/模拟器测试。这里是我可用的分级任务,没有构建或测试或组装等任务,我正在寻找使用,所以我会达到我的目标。这是我的项目树和两个build.gradle文件 ` 我试图在Android Studio中打

  • 我以为这会起作用,但事情一定发生了变化(或者我犯了某种错误) 根据父项目的任务,gradle子项目任务的语法是什么? 我在根级别上有以下任务(即子项目闭包之外和所有项目闭包之外)。 我得到的错误是 然后我猜了几件事包括这个 但那给了我错误 版本信息因此

  • 我有一个多项目的Gradle构建,我定制了“运行”任务,以便在根项目中做一些不同的事情。然而,我不希望它像现在这样在完成后调用每个子项目的“运行”任务。但是这种行为应该只针对这个任务,我希望其他每个任务都按照默认值递归执行,但run任务不是。我也不能为每个子项目全局禁用run任务,因为它在单独执行时在每个子项目中都有一个目的。