Gradle Findbugs使用根任务评估子项目但不评估根项目

时间:2014-05-24 21:37:53

标签: gradle findbugs

我希望能够在我的根项目中创建一个任务,为任何子项目执行所有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'])

1 个答案:

答案 0 :(得分:1)

$ ROOTDIR /的build.gradle:

subprojects {
    task findbugsAll {
        dependsOn tasks.withType(FindBugs)
    }
}

执行:

$ gradle findbugsAll