Interface GradlePluginDevelopmentApiExtension


  • public interface GradlePluginDevelopmentApiExtension
    An extension for controlling the Gradle plugin development API. The extension is registered on the gradlePlugin extension. The API refers to what a user can build against, e.g. some classes are for internal use only. This extension offers some hook points to accomplish the separation at the source set or Jar task level.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      static GradlePluginDevelopmentApiExtension api​(org.gradle.plugin.devel.GradlePluginDevelopmentExtension extension)
      Returns api extension from Gradle plugin development extension.
      org.gradle.api.tasks.TaskProvider<org.gradle.api.tasks.bundling.Jar> getJarTask()
      Returns the task provider for the exported API JAR.
      org.gradle.api.provider.Property<org.gradle.api.tasks.SourceSet> getSourceSet()
      Configures the API source set for the plugin.
      void setJarTask​(org.gradle.api.tasks.TaskProvider<org.gradle.api.tasks.bundling.Jar> jarTaskProvider)
      Configures the API Jar for the plugin.
    • Method Detail

      • getSourceSet

        org.gradle.api.provider.Property<org.gradle.api.tasks.SourceSet> getSourceSet()
        Configures the API source set for the plugin.

        // Configure Gradle plugin API as a custom source set gradlePlugin { api { sourceSet = sourceSets.register('api') } }

        Returns:
        a property to configure the API source set, never null.
      • getJarTask

        org.gradle.api.tasks.TaskProvider<org.gradle.api.tasks.bundling.Jar> getJarTask()
        Returns the task provider for the exported API JAR. Note: Once this property is queried, it's not possible to change the Jar task anymore.
        Returns:
        a task provider to the exported API JAR, never null
      • setJarTask

        void setJarTask​(org.gradle.api.tasks.TaskProvider<org.gradle.api.tasks.bundling.Jar> jarTaskProvider)
        Configures the API Jar for the plugin.

        // Remove `api` packages from implementation JAR tasks.named('jar', Jar) { exclude('**\/api\/**') } // Configure Gradle plugin API as a custom JAR that only include `api` packages gradlePlugin { api { jarTask = tasks.register('apiJar', Jar) { from(sourceSet.flatMap { it.output.elements }) include('**\/api\/**') archiveClassifier = 'api' } } }

        Parameters:
        jarTaskProvider - a JAR task to use as the exported API JAR, never null.
      • api

        static GradlePluginDevelopmentApiExtension api​(org.gradle.plugin.devel.GradlePluginDevelopmentExtension extension)
        Returns api extension from Gradle plugin development extension. The plugin dev.gradleplugins.gradle-plugin-base registers this extension.
        Parameters:
        extension - the gradlePlugin extension, must not be null
        Returns:
        the compatibility extension, never null