Gradle升级到6.7导致spotbug问题

Gradle升级到6.7导致spotbug问题,gradle,gradle-plugin,spotbugs,gradle6.7,Gradle,Gradle Plugin,Spotbugs,Gradle6.7,我正在升级到Gradle 6.7 我跟踪并更新了Gradle以选择6.7。这给了我一些关于spotbug的错误,所以我更新了buildScript中的spotbug版本,如下所示 buildscript { dependencies { . . classpath 'gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.6.0'

我正在升级到Gradle 6.7

我跟踪并更新了Gradle以选择6.7。这给了我一些关于spotbug的错误,所以我更新了buildScript中的spotbug版本,如下所示

    buildscript {
        dependencies {
           .
           .
           classpath 'gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.6.0'
           .
           .
        }
    }
正如我建议的那样,我补充说

dependencies {
    spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.10.1'
    spotbugs 'com.github.spotbugs:spotbugs:4.0.0'
}
和更新

 spotbugs {
    toolVersion = "4.1.4"
 }
在此之后,我开始出现以下两个错误

1。评估脚本时出现问题。有一个名为“SourceSet”的扩展名已注册。您不应该通过属性设置器重新分配它。

在my.gradle文件中,源集被设置为

spotbugs {
    toolVersion = "4.1.4"
    sourceSets = [sourceSets.main, sourceSets.test, sourceSets.integrationTest]
}
  • 第二个错误是
  • 原因:org.gradle.api.tasks.taskInstanceException:无法创建“SpotBugsTask”类型的任务。
    位于org.gradle.api.internal.project.taskfactory.taskfactory$1.call(taskfactory.java:97)
    位于org.gradle.api.internal.project.taskfactory.taskfactory$1.call(taskfactory.java:84)
    位于org.gradle.util.GUtil.uncheckedCall(GUtil.java:442)
    位于org.gradle.api.internal.AbstractTask.InjectInNewInstance(AbstractTask.java:201)
    位于org.gradle.api.internal.project.taskfactory.taskfactory.create(taskfactory.java:84)
    位于org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory.create(AnnotationProcessingTaskFactory.java:48)
    位于org.gradle.api.internal.tasks.DefaultTaskContainer.createTask(DefaultTaskContainer.java:326)
    位于org.gradle.api.internal.tasks.DefaultTaskContainer.access$200(DefaultTaskContainer.java:77)
    位于org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.createDomainObject(DefaultTaskContainer.java:701)
    位于org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.createDomainObject(DefaultTaskContainer.java:658)
    位于org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:941)
    ... 184多
    原因:java.lang.NoSuchMethodError:'java.lang.Object org.gradle.util.DeprecationLogger.whileDisabled(org.gradle.internal.Factory)'
    在com.github.spotbugs.SpotBugsTask.createReports上(SpotBugsTask.java:102)
    位于com.github.spotbugs.SpotBugsTask.(SpotBugsTask.java:98)
    在com.github.spotbugs.SpotBugsTask(来源不详)
    位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
    位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    位于org.gradle.internal.instantiation.generator.AsmBackedClassGenerator$InvokeConstructorStrategy.newInstance(AsmBackedClassGenerator.java:1969)
    位于org.gradle.internal.instantiation.generator.AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl.newInstance(AbstractClassGenerator.java:468)
    位于org.gradle.internal.instantiation.generator.DependencyInjectingStantiator.doCreate(DependencyInjectingStantiator.java:64)
    位于org.gradle.internal.instantiation.generator.DependencyInjectingStantiator.newInstanceWithDisplayName(DependencyInjectingStantiator.java:50)
    位于org.gradle.api.internal.project.taskfactory.taskfactory$1.call(taskfactory.java:90)
    ... 194多
    

    修复这些错误有什么帮助吗?

    您不能再使用
    sourceset
    属性了。最好重构到

    spotbugs {
        toolVersion = "4.1.4"
    }
    
    spotbugsTest {
        enabled = false
    }
    

    更多信息:

    您不能再使用
    sourceset
    属性。最好重构到

    spotbugs {
        toolVersion = "4.1.4"
    }
    
    spotbugsTest {
        enabled = false
    }
    
    更多信息: