Configure the war, ear and project report tasks instead of their plugin conventions
MSALWarPluginConvention, EarPluginConvention and ProjectReportsPluginConvention are deprecated since Gradle 8.2 and removed in Gradle 9, so assigning webAppDirName, appDirName, libDirName or projectReportDirName on the project warns on Gradle 8.14 in Groovy, fails on Gradle 9 in Groovy, and does not compile in Kotlin on Gradle 8.14 or 9. Each assignment becomes configuration of the task, as the upgrade guide says. A script that declares its own War or Ear task gets tasks.withType(..).configureEach { }, because the convention reached those tasks too and war { } would not. The replacement for projectReportDirName moves only the HTML dependency report: on Gradle 8.14 and 9.8 the text reports of projectReport stay in build/reports/project. Only a literal projectReportDirName is changed. Reads, and a script's own def, val or ext of the same name, are left alone. See the Gradle upgrade guide for more information.
org. openrewrite. gradle. migrate. tasks. UseTaskPropertiesForPluginConventionsmod run . --recipe= org. openrewrite. gradle. migrate. tasks. UseTaskPropertiesForPluginConventionsInstall it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.