我希望能够在我的根项目中创建一个任务,为任何子项目执行所有findbugs任务。我的根项目没有来源。
test_automation
--fixtures
--functional
--services
--utilities
我有一个任务:task findbugs(dependsOn: ['findbugsMain', 'findbugsTest'])
我配置了findbugsMain:
findbugsMain {
source subprojects.collect{project -> project.fileTree(project.sourceSets.main.output.classesDir)}
excludes = ['**/test_automation/build/**'] //root project's source
}
然而,当我执行时,我收到一个错误:
:findbugsMain (Thread[main,5,main]) started.
:findbugsMain
file or directory '/Users/ahumerickhouse/codebase/test_automation/build/classes/main', not found
Executing task ':findbugsMain' (up-to-date check took 0.249 secs) due to:
No history is available.
file or directory '/Users/ahumerickhouse/codebase/test_automation/build/classes/main', not found
:findbugsMain FAILED
:findbugsMain (Thread[main,5,main]) completed. Took 0.279 secs.
我无法弄清楚如何从构建中删除根目录的源代码。它在那里,因为它是在我添加之前配置的。任何帮助将不胜感激,谢谢。
修改 我希望所有子项目的根目录中的报告,这就是我试图这样做的原因。我只用CodeNarc就可以做到这一点:
codenarcMain {
source subprojects.collect {project -> project.sourceSets.main.groovy.srcDirs }
}
codenarcTest {
source subprojects.collect {project -> project.sourceSets.test.groovy.srcDirs }
}
task codenarc(type:CodeNarc, dependsOn:['codenarcMain', 'codenarcTest'])
答案 0 :(得分:1)
$ ROOTDIR /的build.gradle:
subprojects {
task findbugsAll {
dependsOn tasks.withType(FindBugs)
}
}
执行:
$ gradle findbugsAll