@@ -9,7 +9,10 @@ import groovy.transform.PackageScope
99import org.codehaus.groovy.runtime.InvokerHelper
1010import org.gradle.api.Action
1111import org.gradle.api.Project
12+ import org.gradle.api.artifacts.Configuration
13+ import org.gradle.api.artifacts.ConfigurationContainer
1214import org.gradle.api.artifacts.repositories.MavenArtifactRepository
15+ import org.gradle.api.attributes.plugin.GradlePluginApiVersion
1316import org.gradle.api.file.Directory
1417import org.gradle.api.file.DirectoryProperty
1518import org.gradle.api.flow.FlowProviders
@@ -210,6 +213,25 @@ import static net.minecraftforge.gradleutils.GradleUtilsPlugin.LOGGER
210213 }
211214 }
212215
216+ @Override
217+ void pluginDevDefaults (ConfigurationContainer configurations , CharSequence gradleVersion ) {
218+ this . pluginDevDefaults(configurations, this . providers. provider { gradleVersion })
219+ }
220+
221+ @Override
222+ void pluginDevDefaults (ConfigurationContainer configurations , Provider<? extends CharSequence > gradleVersion ) {
223+ // Applies the "Gradle Plugin API Version" attribute to configuration
224+ // This was added in Gradle 7, gives consumers useful errors if they are on an old version
225+ this . project. configurations. named(JavaPlugin . RUNTIME_ELEMENTS_CONFIGURATION_NAME . &containsIgnoreCase as Spec<String > ). configureEach { configuration ->
226+ configuration. attributes { attributes ->
227+ attributes. attributeProvider(
228+ GradlePluginApiVersion . GRADLE_PLUGIN_API_VERSION_ATTRIBUTE ,
229+ gradleVersion. map { this . objects. named(GradlePluginApiVersion , it. toString()) }
230+ )
231+ }
232+ }
233+ }
234+
213235 @Override
214236 TaskProvider<? extends PromotePublication > promote (MavenPublication publication , @Nullable Action<? super PromotePublication > cfg ) {
215237 this . project. tasks. register(" promote${ publication.name.capitalize()} Publication" , PromotePublicationImpl , publication). tap { promote ->
0 commit comments