The Gradle Wrapper has been reconfigured to use Gradle 7.1.1, and the wrapper files regenerated. Deprecated configuration for XML Jacoco reporting has been updated to the new standard for Gradle 7, and the removed scopes (compile, runtime) have been migrated to their equivalent (implementation, runtimeOnly), as well as a general cleanup of dependency definition to make the formatting consistent. To ensure the download of the Sonarqube Zip archive continues to work, the Ivy repository definition has been explicitly configured to use the target artefact as the metadata, rather than defaulting to searching for an Ivy XML metadata file that isn't present as part of the target distribution.
The recent migration to Gradle 5 introduced the use of the Shadow plugin in place of the unmaintained SonarQube plugin. However, the default configuration of the Shadow plugin does not bundle dependencies, so the plugin would fail to load if depending on any libraries not bundled with SonarQube. The shadow task is therefore being configured to always execute as part of the Gradle `assemble` task being executed, and it's classifier set to an empty String so it is built/deployed with the same name as the original JAR file. To prevent a clash with the original JAR, its task has been disabled, but it's classifier has also been named as 'nodeps' to make it clear it doesn't contain any dependencies.
The shadow plugin has also been updated to the latest version, and the deprecated `layout` syntax used for retrieving SonarQube artifacts replaced with the alternative `patternLayout` syntax, as well as correcting the line endings in `gradlew.bat`.