Class CompatibilityExtension

java.lang.Object
org.gradle.plugin.compatibility.CompatibilityExtension

public abstract class CompatibilityExtension extends Object
The main entry point to configuring Plugin Compatibility declarations. Can be obtained in the PluginDeclaration context.

In Kotlin DSL, you can use PluginDeclaration.compatibility extension function. It must be explicitly imported.

 // build.gradle.kts
 // Import is necessary in Kotlin Build Script 
 import org.gradle.plugin.compatibility.compatibility
 plugins {
     `java-gradle-plugin`
     id("org.gradle.plugin-compatibility") version "1.0.0"
 }

 gradlePlugin {
     plugins {
         register("my-plugin") {
             id = "com.example.my.plugin"
             implementationClass = "com.example.MyPlugin"
             compatibility {
                 features {
                     configurationCache = true
                 }
             }
         }
     }
 }
 

In Groovy DSL, the import is not needed. However, the syntax differs slightly between Gradle 8.14+ and older versions.

 // build.gradle
 plugins {
     id("java-gradle-plugin")
     id("org.gradle.plugin-compatibility") version "1.0.0"
 }

 gradlePlugin {
     plugins {
         register("my-plugin") {
             id = "com.example.my.plugin"
             implementationClass = "com.example.MyPlugin"
             compatibility { // Gradle 8.14+
                 features {
                     configurationCache = true
                 }
             }

             compatibility(it) { // Gradle 7.4—8.13, note the it argument. 
                features {
                    configurationCache = true
                }
            }
         }
     }
 }
 
Since:
1.0.0
  • Constructor Details

    • CompatibilityExtension

      @Inject public CompatibilityExtension(org.gradle.api.model.ObjectFactory objectFactory)
      Users should not be creating this class directly.
      Since:
      1.0.0
  • Method Details