簡體   English   中英

Gradle 升級到 6.7 導致 spotbug 問題

[英]Gradle upgrade to 6.7 causing spotbug issues

我正在升級到 Gradle 6.7。

我關注了 https://github.com/spotbugs/spotbugs-gradle-plugin並更新了 Gradle 以選擇 6.7。 這給了我一些關於 spotbugs 的錯誤,所以我在buildScript中更新了 spotbugs版本,如下所示

    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. 評估腳本時出現問題。有一個名為“sourceSets”的擴展注冊。 您不應該通過屬性設置器重新分配它。

在 my.gradle 文件中,sourceSets 被設置為

spotbugs {
    toolVersion = "4.1.4"
    sourceSets = [sourceSets.main, sourceSets.test, sourceSets.integrationTest]
}
  1. 第二個錯誤是
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'SpotBugsTask'.
        at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:97)
        at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:84)
        at org.gradle.util.GUtil.uncheckedCall(GUtil.java:442)
        at org.gradle.api.internal.AbstractTask.injectIntoNewInstance(AbstractTask.java:201)
        at org.gradle.api.internal.project.taskfactory.TaskFactory.create(TaskFactory.java:84)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory.create(AnnotationProcessingTaskFactory.java:48)
        at org.gradle.api.internal.tasks.DefaultTaskContainer.createTask(DefaultTaskContainer.java:326)
        at org.gradle.api.internal.tasks.DefaultTaskContainer.access$200(DefaultTaskContainer.java:77)
        at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.createDomainObject(DefaultTaskContainer.java:701)
        at org.gradle.api.internal.tasks.DefaultTaskContainer$TaskCreatingProvider.createDomainObject(DefaultTaskContainer.java:658)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection$AbstractDomainObjectCreatingProvider.tryCreate(DefaultNamedDomainObjectCollection.java:941)
        ... 184 more
Caused by: java.lang.NoSuchMethodError: 'java.lang.Object org.gradle.util.DeprecationLogger.whileDisabled(org.gradle.internal.Factory)'
        at com.github.spotbugs.SpotBugsTask.createReports(SpotBugsTask.java:102)
        at com.github.spotbugs.SpotBugsTask.<init>(SpotBugsTask.java:98)
        at com.github.spotbugs.SpotBugsTask_Decorated.<init>(Unknown Source)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at org.gradle.internal.instantiation.generator.AsmBackedClassGenerator$InvokeConstructorStrategy.newInstance(AsmBackedClassGenerator.java:1969)
        at org.gradle.internal.instantiation.generator.AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl.newInstance(AbstractClassGenerator.java:468)
        at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:64)
        at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstanceWithDisplayName(DependencyInjectingInstantiator.java:50)
        at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:90)
        ... 194 more

對修復這些錯誤有幫助嗎?

您不能再使用sourceSets屬性了。 最好重構為

spotbugs {
    toolVersion = "4.1.4"
}

spotbugsTest {
    enabled = false
}

更多信息: https://github.com/spotbugs/spotbugs-gradle-plugin/issues/308#issuecomment-659050508

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM