问题描述
所以我有一个多模块项目,该项目使用gradle构建了很多东西,包括一些AWS Lambda,一个Java(Spring Boot)微服务和一个ReactJS Webapp。
为此,我想生成一些Jacoco代码覆盖率报告以保持最新状态。所以目前我有这个:
subprojects {
apply plugin: 'jacoco'
plugins.withType(JavaPlugin) {
jacoco {
toolVersion = "0.8.5"
}
}
}
哪个“有效”。但是,如果我将其更改为:
subprojects {
plugins.withType(JavaPlugin) {
apply plugin: 'jacoco'
jacoco {
toolVersion = "0.8.5"
}
}
}
Gradle在尝试构建第一个Java项目时失败 hard 。我的意思是我并不介意,您必须将jacoco插件应用于其中没有任何Java代码的子项目,这真的很奇怪。有人吗?
解决方法
请参见文档https://docs.gradle.org/current/userguide/plugins.html中的示例3(仅在某些子项目上应用插件)
即在您的情况下:
plugins {
id 'jacoco' version '1.0.0' apply false
}
subprojects {
if (name.startsWith('myjacostuff')) {
apply plugin: 'jacoco'
}
plugins.withType(JavaPlugin) {
jacoco {
toolVersion = "0.8.5"
}
}
}