我有一个多模块的gradle项目,似乎我需要一些公共任务,或者说是根任务,可以在每个子项目上使用不同的参数运行。我的项目结构是:
-+ parent
| /gradle
| build.gradle.kts
| settings.gradle.kts
| gradlew
| gradlew.bat
+- child1
| /build
| build.gradle.kts
+- child2
| /build
| build.gradle.kts
+- child3
| /build
| build.gradle.kts
+- child4
| /build
| build.gradle.kts
我只需要在child2
、child3
和child4
项目上运行jacoco测试覆盖任务**,并具有单独的最小值**。
所以我不能在根目录build.gradle.kts
的subprojects
部分定义任务,因为它将应用于所有子项目。
另外,作为一种替代方案,似乎我可以在根build.gradle.kts
中定义一个任务并将其命名为dependsOn(":parent:myTask")
,但在这种情况下,我不能使用参数化...
我不是很熟悉这一点,所以谁能解释一下正确的方法,或者指出一个类似功能的好例子?
1条答案
按热度按时间fcwjkofz1#
我相信有很多方法可以做到这一点,但是像这样的事情怎么样...任务可以存在于根
build.gradle
中,你可以解析项目名称并明确定义你的值(你也可以跳过你不想在其中做的子项目)。例如...先解释一下解决方案...遍历所有项目,根据项目名称设置
value
。然后,在每个子项目中注册一个任务,该任务将执行一些操作(我的任务打印项目名称和计算值)。然后,由于您提到了它,它将所有这些新任务(
jones
)连接到根项目(jill
)中的一个任务。最后,您可以简单地运行
./gradlew jill
。它运行主任务,并通过子项目中所有创建的任务来完成它,每个任务都有自己的价值观。