java - 跳过子项目中的gradle子任务

标签 java gradle build

我有一个项目rootProject,其中有5个子项目,它们都是gradle项目。当我从rootProject运行gradle build时,它将在所有子项目上运行gradle build。众所周知,gradle构建任务中将包含多个子任务,如clean,compile,test。

我有一个要求,如果我从rootProject运行gradle build,它将在除subproject5之外的所有子项目上运行此命令。在subproject5上,它应该仅跳过构建任务的test子任务。同时,如果我进入subproject5目录并尝试通过gradle test命令访问子任务,它应该可以工作。

请帮我解决一下这个。

最佳答案

为了控制某个项目的测试任务的运行,请检查传递的参数,然后使用该参数删除测试任务。以下可以在build.gradle文件中使用。

subprojects {
  // Add all other common stuff
  // and as last statement perform the check
  if(project.hasProperty('disableTestForProject5')) {
    project(':project5').tasks.remove(test)
  }
}

现在,如果您要禁用对project5的测试,则可以以./gradlew build -PdisableTestForProject5的形式运行build。如果不通过该参数,则将执行测试。

要停止永久执行测试,只需删除条件并将project(':project5').tasks.remove(test)放在subprojects块的最后一行即可。

关于java - 跳过子项目中的gradle子任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55301795/

相关文章:

javascript - 如何避免 "Forcing rebuild: JavaScript files need to be re-encrypted"

android - Android资源编译失败(缓存文件错误)

java - Spring 启动 : Unit test and Config file

gradle - 从命令提示符将属性传递给自定义gradle任务

java - 读取动态填充的txt文件

java - 如何在构建时在Gradle中运行控制台命令?

android - Gradle Sync问题:连接被拒绝:连接

android - 在 aosp 构建期间将文件夹复制到/data/data/<package-name>/from system/app/<app> 文件夹

java - Hadoop mapreduce输入路径不存在(MR Job在寻找什么文件系统?)

java - 单网卡多个IP : UDP Broadcast