Package org.gradle.api.tasks.wrapper

## Class Wrapper

- java.lang.Object
- - org.gradle.api.internal.AbstractTask
  - - org.gradle.api.DefaultTask
    - - org.gradle.api.tasks.wrapper.Wrapper

- All Implemented Interfaces:
    `Comparable<Task>`, `org.gradle.api.internal.DynamicObjectAware`, `org.gradle.api.internal.TaskInternal`, `ExtensionAware`, `Task`, `Configurable<Task>`

      @DisableCachingByDefault(because="Updating the wrapper is not worth caching")
      public class Wrapper
      extends DefaultTask

  Generates scripts (for *nix and windows) which allow you to build your project with Gradle, without having to install Gradle.

  When a user executes a wrapper script the first time, the script downloads and installs the appropriate Gradle distribution and runs the build against this downloaded distribution. Any installed Gradle distribution is ignored when using the wrapper scripts.

  The scripts generated by this task are intended to be committed to your version control system. This task also generates a small `gradle-wrapper.jar` bootstrap JAR file and properties file which should also be committed to your VCS. The scripts delegates to this JAR.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `Wrapper.DistributionType` | Specifies the Gradle distribution type.
    `static class` | `Wrapper.PathBase` | Specifies how the wrapper path should be interpreted.

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `DEFAULT_DISTRIBUTION_PARENT_NAME` |

    - ### Fields inherited from interface org.gradle.api.Task

      `TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Wrapper()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Wrapper.PathBase` | `getArchiveBase()` | The archive base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.
    `String` | `getArchivePath()` | Returns the path where the gradle distributions archive should be saved (i.e.
    `List<Wrapper.DistributionType>` | `getAvailableDistributionTypes()` | The list of available gradle distribution types.
    `File` | `getBatchScript()` | Returns the file to write the wrapper batch script to.
    `Wrapper.PathBase` | `getDistributionBase()` | The distribution base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.
    `String` | `getDistributionPath()` | Returns the path where the gradle distributions needed by the wrapper are unzipped.
    `String` | `getDistributionSha256Sum()` | The SHA-256 hash sum of the gradle distribution.
    `Wrapper.DistributionType` | `getDistributionType()` | Returns the type of the Gradle distribution to be used by the wrapper.
    `String` | `getDistributionUrl()` | The URL to download the gradle distribution from.
    `protected org.gradle.api.internal.file.FileLookup` | `getFileLookup()` |
    `String` | `getGradleVersion()` | Returns the gradle version for the wrapper.
    `File` | `getJarFile()` | Returns the file to write the wrapper jar file to.
    `File` | `getPropertiesFile()` | Returns the file to write the wrapper properties to.
    `File` | `getScriptFile()` | Returns the file to write the wrapper script to.
    `void` | `setArchiveBase​(Wrapper.PathBase archiveBase)` | The archive base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.
    `void` | `setArchivePath​(String archivePath)` | Set's the path where the gradle distributions archive should be saved (i.e.
    `void` | `setDistributionBase​(Wrapper.PathBase distributionBase)` | The distribution base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.
    `void` | `setDistributionPath​(String distributionPath)` | Sets the path where the gradle distributions needed by the wrapper are unzipped.
    `void` | `setDistributionSha256Sum​(String distributionSha256Sum)` | The SHA-256 hash sum of the gradle distribution.
    `void` | `setDistributionType​(Wrapper.DistributionType distributionType)` | The type of the Gradle distribution to be used by the wrapper.
    `void` | `setDistributionUrl​(String url)` | The URL to download the gradle distribution from.
    `void` | `setGradleVersion​(String gradleVersion)` | The version of the gradle distribution required by the wrapper.
    `void` | `setJarFile​(File jarFile)` | The file to write the wrapper jar file to.
    `void` | `setJarFile​(Object jarFile)` | The file to write the wrapper jar file to.
    `void` | `setScriptFile​(File scriptFile)` | The file to write the wrapper script to.
    `void` | `setScriptFile​(Object scriptFile)` | The file to write the wrapper script to.

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService`

    - ### Methods inherited from class org.gradle.api.internal.AbstractTask

      `appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.gradle.api.Task

      `doNotTrackState, getConvention, notCompatibleWithConfigurationCache`

- - ### Field Detail

    - #### DEFAULT_DISTRIBUTION_PARENT_NAME

          public static final String DEFAULT_DISTRIBUTION_PARENT_NAME

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### Wrapper

          public Wrapper()

  - ### Method Detail

    - #### getFileLookup

          @Inject
          protected org.gradle.api.internal.file.FileLookup getFileLookup()

    - #### getScriptFile

          @OutputFile
          public File getScriptFile()

      Returns the file to write the wrapper script to.

    - #### setScriptFile

          public void setScriptFile​(File scriptFile)

      The file to write the wrapper script to.
      Since:
        4.0

    - #### setScriptFile

          public void setScriptFile​(Object scriptFile)

      The file to write the wrapper script to.

    - #### getBatchScript

          @OutputFile
          public File getBatchScript()

      Returns the file to write the wrapper batch script to.

    - #### getJarFile

          @OutputFile
          public File getJarFile()

      Returns the file to write the wrapper jar file to.

    - #### setJarFile

          public void setJarFile​(File jarFile)

      The file to write the wrapper jar file to.
      Since:
        4.0

    - #### setJarFile

          public void setJarFile​(Object jarFile)

      The file to write the wrapper jar file to.

    - #### getPropertiesFile

          @OutputFile
          public File getPropertiesFile()

      Returns the file to write the wrapper properties to.

    - #### getDistributionPath

          @Input
          public String getDistributionPath()

      Returns the path where the gradle distributions needed by the wrapper are unzipped. The path is relative to the distribution base directory
      See Also:
        `setDistributionPath(String)`

    - #### setDistributionPath

          public void setDistributionPath​(String distributionPath)

      Sets the path where the gradle distributions needed by the wrapper are unzipped. The path is relative to the distribution base directory
      See Also:
        `setDistributionPath(String)`

    - #### getGradleVersion

          @Input
          public String getGradleVersion()

      Returns the gradle version for the wrapper.
      See Also:
        `setGradleVersion(String)`

    - #### setGradleVersion

          public void setGradleVersion​(String gradleVersion)

      The version of the gradle distribution required by the wrapper. This is usually the same version of Gradle you use for building your project.

    - #### getDistributionType

          @Input
          public Wrapper.DistributionType getDistributionType()

      Returns the type of the Gradle distribution to be used by the wrapper.
      See Also:
        `setDistributionType(DistributionType)`

    - #### setDistributionType

          public void setDistributionType​(Wrapper.DistributionType distributionType)

      The type of the Gradle distribution to be used by the wrapper. By default, this is `Wrapper.DistributionType.BIN`, which is the binary-only Gradle distribution without documentation.
      See Also:
        `Wrapper.DistributionType`

    - #### getAvailableDistributionTypes

          public List<Wrapper.DistributionType> getAvailableDistributionTypes()

      The list of available gradle distribution types.

    - #### getDistributionUrl

          @Input
          public String getDistributionUrl()

      The URL to download the gradle distribution from.

      If not set, the download URL is the default for the specified `getGradleVersion()`.

      If `getGradleVersion()` is not set, will return null.

      The wrapper downloads a certain distribution only once and caches it. If your distribution base is the project, you might submit the distribution to your version control system. That way no download is necessary at all. This might be in particular interesting, if you provide a custom gradle snapshot to the wrapper, because you don't need to provide a download server then.

    - #### setDistributionUrl

          public void setDistributionUrl​(String url)

      The URL to download the gradle distribution from.

      If not set, the download URL is the default for the specified `getGradleVersion()`.

      If `getGradleVersion()` is not set, will return null.

      The wrapper downloads a certain distribution and caches it. If your distribution base is the project, you might submit the distribution to your version control system. That way no download is necessary at all. This might be in particular interesting, if you provide a custom gradle snapshot to the wrapper, because you don't need to provide a download server then.

    - #### getDistributionSha256Sum

          @Nullable
          @Optional
          @Input
          public String getDistributionSha256Sum()

      The SHA-256 hash sum of the gradle distribution.

      If not set, the hash sum of the gradle distribution is not verified.

      The wrapper allows for verification of the downloaded Gradle distribution via SHA-256 hash sum comparison. This increases security against targeted attacks by preventing a man-in-the-middle attacker from tampering with the downloaded Gradle distribution.

      Since:
        4.5

    - #### setDistributionSha256Sum

          public void setDistributionSha256Sum​(@Nullable
                                               String distributionSha256Sum)

      The SHA-256 hash sum of the gradle distribution.

      If not set, the hash sum of the gradle distribution is not verified.

      The wrapper allows for verification of the downloaded Gradle distribution via SHA-256 hash sum comparison. This increases security against targeted attacks by preventing a man-in-the-middle attacker from tampering with the downloaded Gradle distribution.

      Since:
        4.5

    - #### getDistributionBase

          @Input
          public Wrapper.PathBase getDistributionBase()

      The distribution base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.

    - #### setDistributionBase

          public void setDistributionBase​(Wrapper.PathBase distributionBase)

      The distribution base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.

    - #### getArchivePath

          @Input
          public String getArchivePath()

      Returns the path where the gradle distributions archive should be saved (i.e. the parent dir). The path is relative to the archive base directory.

    - #### setArchivePath

          public void setArchivePath​(String archivePath)

      Set's the path where the gradle distributions archive should be saved (i.e. the parent dir). The path is relative to the parent dir specified with `getArchiveBase()`.

    - #### getArchiveBase

          @Input
          public Wrapper.PathBase getArchiveBase()

      The archive base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.

    - #### setArchiveBase

          public void setArchiveBase​(Wrapper.PathBase archiveBase)

      The archive base specifies whether the unpacked wrapper distribution should be stored in the project or in the gradle user home dir.