Package: org.gradle.plugins.signing

## [Java] Class SigningExtension

- org.gradle.plugins.signing.SigningExtension

- The global signing configuration for a project.

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `static String` | `DEFAULT_CONFIGURATION_NAME` | The name of the configuration that all signature artifacts will be placed into ("signatures")

  - ### Constructor Summary

    Constructors
    Constructor and description
    `SigningExtension (Project project)` Configures the signing settings for the given project.

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `protected void` | `addSignatureSpecConventions(SignatureSpec spec)` Adds conventions to the given spec, using this settings object's default signatory and signature type as the default signatory and signature type for the spec.
    `protected Object` | `addSignaturesToConfiguration(Sign task, Configuration configuration)`
    `protected SignatoryProvider` | `createSignatoryProvider()` Provides the signatory provider.
    `protected SignatureTypeProvider` | `createSignatureTypeProvider()` Provides the signature type provider.
    `protected SignOperation` | `doSignOperation(groovy.lang.Closure setup)`
    `protected SignOperation` | `doSignOperation(Action<SignOperation> setup)`
    `Configuration` | `getConfiguration()` The configuration that signature artifacts are added to.
    `static String` | `getDEFAULT_CONFIGURATION_NAME()`
    `protected Configuration` | `getDefaultConfiguration()` Provides the configuration that signature artifacts are added to.
    `Project` | `getProject()`
    `SignatoryProvider` | `getSignatories()`
    `Signatory` | `getSignatory()` The signatory that will be used for signing when an explicit signatory has not been specified.
    `SignatureType` | `getSignatureType()` The signature type that will be used for signing files when an explicit signature type has not been specified.
    `SignatureTypeProvider` | `getSignatureTypes()`
    `boolean` | `isRequired()` Whether or not this task should fail if no signatory or signature type are configured at generation time.
    `void` | `setConfiguration(Configuration configuration)`
    `void` | `setRequired(Object required)` Whether or not this task should fail if no signatory or signature type are configured at generation time.
    `void` | `setSignatories(SignatoryProvider signatories)`
    `void` | `setSignatureTypes(SignatureTypeProvider signatureTypes)`
    `List<Sign>` | `sign(Task... tasks)` Creates signing tasks that depend on and sign the "archive" produced by the given tasks.
    `List<Sign>` | `sign(Configuration... configurations)` Creates signing tasks that sign all of the artifacts of the given configurations.
    `SignOperation` | `sign(PublishArtifact... publishArtifacts)` Digitally signs the publish artifacts, generating signature files alongside them.
    `SignOperation` | `sign(File... files)` Digitally signs the files, generating signature files alongside them.
    `SignOperation` | `sign(String classifier, File... files)` Digitally signs the files, generating signature files alongside them.
    `SignOperation` | `sign(groovy.lang.Closure closure)` Creates a new sign operation using the given closure to configure it before executing it.
    `Signature` | `signPom(MavenDeployment mavenDeployment, groovy.lang.Closure closure)` Signs the POM artifact for the given Maven deployment.
    `Signature` | `signPom(MavenDeployment mavenDeployment)` Signs the POM artifact for the given Maven deployment.
    `SignatoryProvider` | `signatories(groovy.lang.Closure closure)` Configures the signatory provider (delegating to its configure method).

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class groovy.lang.GroovyObjectSupport` | `groovy.lang.GroovyObjectSupport#setProperty(java.lang.String, java.lang.Object), groovy.lang.GroovyObjectSupport#getProperty(java.lang.String), groovy.lang.GroovyObjectSupport#invokeMethod(java.lang.String, java.lang.Object), groovy.lang.GroovyObjectSupport#setMetaClass(groovy.lang.MetaClass), groovy.lang.GroovyObjectSupport#getMetaClass(), groovy.lang.GroovyObjectSupport#wait(long, int), groovy.lang.GroovyObjectSupport#wait(long), groovy.lang.GroovyObjectSupport#wait(), groovy.lang.GroovyObjectSupport#equals(java.lang.Object), groovy.lang.GroovyObjectSupport#toString(), groovy.lang.GroovyObjectSupport#hashCode(), groovy.lang.GroovyObjectSupport#getClass(), groovy.lang.GroovyObjectSupport#notify(), groovy.lang.GroovyObjectSupport#notifyAll()`
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Field Detail

    - #### public static final String DEFAULT_CONFIGURATION_NAME

      The name of the configuration that all signature artifacts will be placed into ("signatures")

  - ### Constructor Detail

    - #### public SigningExtension(Project project)

      Configures the signing settings for the given project.

  - ### Method Detail

    - #### protected void addSignatureSpecConventions(SignatureSpec spec)

      Adds conventions to the given spec, using this settings object's default signatory and signature type as the default signatory and signature type for the spec.

    - #### protected Object addSignaturesToConfiguration(Sign task, Configuration configuration)

    - #### protected SignatoryProvider createSignatoryProvider()

      Provides the signatory provider. Called once during construction.

    - #### protected SignatureTypeProvider createSignatureTypeProvider()

      Provides the signature type provider. Called once during construction.

    - #### protected SignOperation doSignOperation(groovy.lang.Closure setup)

    - #### protected SignOperation doSignOperation(Action<SignOperation> setup)

    - #### public Configuration getConfiguration()

      The configuration that signature artifacts are added to.

    - #### public static String getDEFAULT_CONFIGURATION_NAME()

    - #### protected Configuration getDefaultConfiguration()

      Provides the configuration that signature artifacts are added to. Called once during construction.

    - #### public final Project getProject()

    - #### public SignatoryProvider getSignatories()

    - #### public Signatory getSignatory()

      The signatory that will be used for signing when an explicit signatory has not been specified.

      Delegates to the signatory provider's default signatory.

    - #### public SignatureType getSignatureType()

      The signature type that will be used for signing files when an explicit signature type has not been specified.

      Delegates to the signature type provider's default type.

    - #### public SignatureTypeProvider getSignatureTypes()

    - #### public boolean isRequired()

      Whether or not this task should fail if no signatory or signature type are configured at generation time.

      Defaults to `true`.

      See Also:
        setRequired(Object)

    - #### public void setConfiguration(Configuration configuration)

    - #### public void setRequired(Object required)

      Whether or not this task should fail if no signatory or signature type are configured at generation time. If `required` is a Callable, it will be stored and "called" on demand (i.e. when isRequired() is called) and the return value will be interpreting according to the Groovy Truth. For example:

           signing {
             required = { gradle.taskGraph.hasTask("uploadArchives") }
           }

      Because the task graph is not known until Gradle starts executing, we must use defer the decision. We can do this via using a groovy.lang.Closure (which is a Callable). For any other type, the value will be stored and evaluated on demand according to the Groovy Truth.

           signing {
             required = false
           }

    - #### public void setSignatories(SignatoryProvider signatories)

    - #### public void setSignatureTypes(SignatureTypeProvider signatureTypes)

    - #### public List<Sign> sign(Task... tasks)

      Creates signing tasks that depend on and sign the "archive" produced by the given tasks.

      The created tasks will be named "sign<input task name capitalized>". That is, given a task with the name "jar" the created task will be named "signJar".

      If the task is not an AbstractArchiveTask, an InvalidUserDataException will be thrown.

      The signature artifact for the created task is added to the for this settings object.

      Parameters:
        `tasks` - The tasks whose archives are to be signed
      Returns:
        the created tasks.

    - #### public List<Sign> sign(Configuration... configurations)

      Creates signing tasks that sign all of the artifacts of the given configurations.

      The created tasks will be named "sign<configuration name capitalized>". That is, given a configuration with the name "archives" the created task will be named "signArchives". The signature artifact for the created task is added to the for this settings object.

      Parameters:
        `configurations` - The configurations whose archives are to be signed
      Returns:
        the created tasks.

    - #### public SignOperation sign(PublishArtifact... publishArtifacts)

      Digitally signs the publish artifacts, generating signature files alongside them.

      The project's default signatory and default signature type from the signing settings will be used to generate the signature. The returned sign gives access to the created signature files.

      If there is no configured default signatory available, the sign operation will fail.

      Parameters:
        `publishArtifacts` - The publish artifacts to sign
      Returns:
        The executed sign operation

    - #### public SignOperation sign(File... files)

      Digitally signs the files, generating signature files alongside them.

      The project's default signatory and default signature type from the signing settings will be used to generate the signature. The returned sign gives access to the created signature files.

      If there is no configured default signatory available, the sign operation will fail.

      Parameters:
        `files` - The files to sign.
      Returns:
        The executed sign operation.

    - #### public SignOperation sign(String classifier, File... files)

      Digitally signs the files, generating signature files alongside them.

      The project's default signatory and default signature type from the signing settings will be used to generate the signature. The returned sign gives access to the created signature files.

      If there is no configured default signatory available, the sign operation will fail.

      Parameters:
        `classifier` - The classifier to assign to the created signature artifacts.
        `files` - The publish artifacts to sign.
      Returns:
        The executed sign operation.

    - #### public SignOperation sign(groovy.lang.Closure closure)

      Creates a new sign operation using the given closure to configure it before executing it.

      The project's default signatory and default signature type from the signing settings will be used to generate the signature. The returned sign gives access to the created signature files.

      If there is no configured default signatory available (and one is not explicitly specified in this operation's configuration), the sign operation will fail.

      Parameters:
        `closure` - The configuration of the sign operation.
      Returns:
        The executed sign operation.

    - #### public Signature signPom(MavenDeployment mavenDeployment, groovy.lang.Closure closure)

      Signs the POM artifact for the given Maven deployment.

      You can use this method to sign the generated POM when publishing to a Maven repository with the Maven plugin.

           uploadArchives { repositories { mavenDeployer {
           beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } } } }

      You can optionally provide a configuration closure to fine tune the sign for the POM.

      If isRequired() is false and the signature cannot be generated (e.g. no configured signatory), this method will silently do nothing. That is, a signature for the POM file will not be uploaded.

      Parameters:
        `mavenDeployment` - The deployment to sign the POM of
        `closure` - the configuration of the underlying sign operation for the POM (optional)
      Returns:
        the generated signature artifact

    - #### public Signature signPom(MavenDeployment mavenDeployment)

      Signs the POM artifact for the given Maven deployment.

      You can use this method to sign the generated POM when publishing to a Maven repository with the Maven plugin.

           uploadArchives { repositories { mavenDeployer {
           beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } } } }

      You can optionally provide a configuration closure to fine tune the sign for the POM.

      If isRequired() is false and the signature cannot be generated (e.g. no configured signatory), this method will silently do nothing. That is, a signature for the POM file will not be uploaded.

      Parameters:
        `mavenDeployment` - The deployment to sign the POM of
      Returns:
        the generated signature artifact

    - #### public SignatoryProvider signatories(groovy.lang.Closure closure)

      Configures the signatory provider (delegating to its configure method).

      Parameters:
        `closure` - the signatory provider configuration DSL
      Returns:
        the configured signatory provider