我尝试使用gradle设置自定义findbugs任务,该任务将具有与默认值不同的pluginClasspath。
因此,默认任务应使用默认的FindBugs规则,而自定义任务应使用findbugs-security规则。我的配置如下所示:
dependencies {
findbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.4.4'
}
findbugs {
// general config
}
task findbugsSecurity(type: FindBugs, dependsOn: classes) {
classes = fileTree(project.sourceSets.main.output.classesDir)
source = project.sourceSets.main.java.srcDirs
classpath = files()
pluginClasspath = files(configurations.findbugsPlugins.asPath)
}
但是,如果我现在运行findbugsMain任务,它还包括来自findbugs-security的检查!
如何配置它以便findbugs-security检查仅用于自定义任务?
答案 0 :(得分:3)
听起来配置findbugsSecurity
任务也会改变findbugsMain
的行为,正如您可能已经猜到的那样。
诀窍是使用新配置,因为Gradle将自动查找findbugsPlugins配置的依赖项,并且将适用于findbugs的所有调用(请参阅pluginClasspath part of FindBugs DSL):
configurations {
foo
}
dependencies {
// Important that we use a new configuration here because Gradle will use the findbugsPlugins configurations by default
foo 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.4.4'
}
findbugs { /* whatever */ }
task findbugsSecurity(type: FindBugs, dependsOn: classes) {
classes = fileTree(project.sourceSets.main.output.classesDir)
source = project.sourceSets.main.java.srcDirs
classpath = files()
pluginClasspath = files(configurations.foo.asPath)
}