Closed bondolo closed 3 years ago
Thanks @bondolo! It looks good, but I'm thinking about backward compatibility. Our main CI is currently broken (#290) and I wonder, if all the tests (except "PitestPluginGeneralFunctionalSpec > enable PIT plugin when on classpath and pass plugin configuration to PIT" which is broken due to the Bintray shutdown - see https://github.com/hcoles/pitest-plugins/pull/4) work on your machine (including those testing compatibility with older Gradle versions)?
./gradlew check funcTest
I had run the default tests with ./gradlew clean build
which seemed to pass.
Running the suggested ./gradlew check funcTest
produces some test failures:
java.lang.NoSuchMethodError: info.solidsoft.gradle.pitest.PitestTask.getMainClass()Lorg/gradle/api/provider/Property;
at info.solidsoft.gradle.pitest.PitestTask.<init>(PitestTask.groovy:245)
at org.gradle.internal.instantiation.AsmBackedClassGenerator.newInstance(AsmBackedClassGenerator.java:179)
at org.gradle.internal.instantiation.AbstractClassGenerator$GeneratedClassImpl$GeneratedConstructorImpl.newInstance(AbstractClassGenerator.java:395)
at org.gradle.internal.instantiation.DependencyInjectingInstantiator.newInstance(DependencyInjectingInstantiator.java:49)
at org.gradle.api.internal.project.taskfactory.TaskFactory$1.call(TaskFactory.java:72)
... 140 more
At least one of the failures is caused by the disappearance of Bintray:
org.gradle.api.resources.ResourceException: Could not get resource 'https://dl.bintray.com/szpak/pitest-plugins/org/pitest/plugins/pitest-plugin-configuration-reporter-plugin/0.0.2/pitest-plugin-configuration-reporter-plugin-0.0.2.pom'
So it looks like more work will be needed to complete this fix.
I needed to lower Java version to 8 to reproduce the problem with Gradle 5.6. In the end, the new minimal supported Gradle version is 6.4 That's probably fine as it was released May 05, 2020
and people should be able to migrate to some later 6.x.
Nevertheless, having some time, I will take a look if - using some Groovy hacks - wouldn't be easy to support both the cases.
Setting
main
is deprecated in Gradle 7.X and will be removed in Gradle 8.0. This sets the main class using themainClass
property.