我有一个项目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/