#gradle #gradle-plugin #spotbugs #gradle6.7
#градация #gradle-плагин #исправленные ошибки #gradle6.7 #gradle
Вопрос:
Я обновляюсь до Gradle 6.7.
Я последовал https://github.com/spotbugs/spotbugs-gradle-plugin и обновил Gradle, чтобы выбрать 6.7. Это дало мне некоторую ошибку о spotbugs, поэтому я обновил версию spotbugs в buildScript следующим образом
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’. Вы не должны переназначать его через установщик свойств.
В моем файле .gradle исходные наборы устанавливаются как
spotbugs {
toolVersion = "4.1.4"
sourceSets = [sourceSets.main, sourceSets.test, sourceSets.integrationTest]
}
- вторая ошибка
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
Любая помощь в исправлении этих ошибок?
Ответ №1:
Вы больше не можете использовать это sourceSets
свойство. Лучше всего провести рефакторинг, чтобы
spotbugs {
toolVersion = "4.1.4"
}
spotbugsTest {
enabled = false
}
Дополнительная информация: https://github.com/spotbugs/spotbugs-gradle-plugin/issues/308#issuecomment-659050508