public class SigningExtension extends Object
Modifier and Type | Field | Description |
---|---|---|
static String |
DEFAULT_CONFIGURATION_NAME |
The name of the configuration that all signature artifacts will be placed into ("signatures")
|
Constructor | Description |
---|---|
SigningExtension(Project project) |
Configures the signing settings for the given project.
|
Modifier and Type | Method | 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(Closure setup) |
|
protected SignOperation |
doSignOperation(Action<SignOperation> setup) |
|
Configuration |
getConfiguration() |
The configuration that signature artifacts are added to.
|
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(boolean required) |
Whether or not this task should fail if no signatory or signature type are configured at generation time.
|
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) |
|
SignOperation |
sign(Closure closure) |
Creates a new
sign operation using the given closure to configure it before executing it. |
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.
|
List<Sign> |
sign(Configuration... configurations) |
Creates signing tasks that sign
all artifacts of the given configurations. |
SignOperation |
sign(PublishArtifact... publishArtifacts) |
Digitally signs the publish artifacts, generating signature files alongside them.
|
List<Sign> |
sign(DomainObjectCollection<Publication> publications) |
Creates signing tasks that sign all publishable artifacts of the given publication collection.
|
List<Sign> |
sign(Publication... publications) |
Creates signing tasks that sign all publishable artifacts of the given publications.
|
List<Sign> |
sign(Task... tasks) |
Creates signing tasks that depend on and sign the "archive" produced by the given tasks.
|
SignatoryProvider |
signatories(Closure closure) |
Configures the signatory provider (delegating to its
configure method ). |
Signature |
signPom(MavenDeployment mavenDeployment) |
Signs the POM artifact for the given Maven deployment.
|
Signature |
signPom(MavenDeployment mavenDeployment,
Closure closure) |
Signs the POM artifact for the given Maven deployment.
|
void |
useGpgCmd() |
Use GnuPG agent to perform signing work.
|
void |
useInMemoryPgpKeys(String defaultSecretKey,
String defaultPassword) |
Use the supplied ascii-armored in-memory PGP secret key and password
instead of reading it from a keyring.
|
public static final String DEFAULT_CONFIGURATION_NAME
public SigningExtension(Project project)
public final Project getProject()
public void setRequired(boolean required)
public void setRequired(Object required)
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
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 boolean isRequired()
Defaults to true
.
setRequired(Object)
protected Configuration getDefaultConfiguration()
protected SignatureTypeProvider createSignatureTypeProvider()
protected SignatoryProvider createSignatoryProvider()
public SignatoryProvider signatories(Closure closure)
configure method
).closure
- the signatory provider configuration DSLpublic Signatory getSignatory()
Delegates to the signatory provider's default signatory.
public SignatureType getSignatureType()
Delegates to the signature type provider's default type.
public void setSignatureTypes(SignatureTypeProvider signatureTypes)
public SignatureTypeProvider getSignatureTypes()
public void setSignatories(SignatoryProvider signatories)
public void setConfiguration(Configuration configuration)
@Incubating public void useGpgCmd()
@Incubating public void useInMemoryPgpKeys(@Nullable String defaultSecretKey, @Nullable String defaultPassword)
signing {
def secretKey = findProperty("mySigningKey")
def password = findProperty("mySigningPassword")
useInMemoryPgpKeys(secretKey, password)
}
public Configuration getConfiguration()
protected void addSignatureSpecConventions(SignatureSpec spec)
public List<Sign> sign(Task... 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
.
tasks
- The tasks whose archives are to be signedpublic List<Sign> sign(Configuration... configurations)
all 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 artifacts for the created tasks are added to the configuration
for this settings object.
configurations
- The configurations whose archives are to be signed@Incubating public List<Sign> sign(Publication... publications)
The created tasks will be named "sign<publication name capitalized>Publication". That is, given a publication with the name "mavenJava" the created task will be named "signMavenJavaPublication". The signature artifacts for the created tasks are added to the publishable artifacts of the given publications.
publications
- The publications whose artifacts are to be signed@Incubating public List<Sign> sign(DomainObjectCollection<Publication> publications)
The created tasks will be named "sign<publication name capitalized>Publication". That is, given a publication with the name "mavenJava" the created task will be named "signMavenJavaPublication". The signature artifacts for the created tasks are added to the publishable artifacts of the given publications.
publications
- The collection of publications whose artifacts are to be signedprotected Object addSignaturesToConfiguration(Sign task, Configuration configuration)
public SignOperation sign(PublishArtifact... publishArtifacts)
The project's default signatory and default signature type from the signing settings
will be used to generate the signature. The returned sign
operation
gives access to the created signature files.
If there is no configured default signatory available, the sign operation will fail.
publishArtifacts
- The publish artifacts to signsign operation
public SignOperation sign(File... files)
The project's default signatory and default signature type from the signing settings
will be used to generate the signature. The returned sign
operation
gives access to the created signature files.
If there is no configured default signatory available, the sign operation will fail.
files
- The files to sign.sign operation
.public SignOperation sign(String classifier, File... files)
The project's default signatory and default signature type from the signing settings
will be used to generate the signature. The returned sign
operation
gives access to the created signature files.
If there is no configured default signatory available, the sign operation will fail.
classifier
- The classifier to assign to the created signature artifacts.files
- The publish artifacts to sign.sign operation
.public SignOperation sign(Closure closure)
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
operation
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.
closure
- The configuration of the sign operation
.sign operation
.public Signature signPom(MavenDeployment mavenDeployment, Closure closure)
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
operation
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.
Note: Signing the generated POM file generated by the Maven Publishing plugin is currently not supported. Future versions of Gradle might add this functionality.
mavenDeployment
- The deployment to sign the POM ofclosure
- the configuration of the underlying sign operation
for the POM (optional)public Signature signPom(MavenDeployment mavenDeployment)
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
operation
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.
Note: Signing the generated POM file generated by the Maven Publishing plugin is currently not supported. Future versions of Gradle might add this functionality.
mavenDeployment
- The deployment to sign the POM ofprotected SignOperation doSignOperation(Closure setup)
protected SignOperation doSignOperation(Action<SignOperation> setup)
public SignatoryProvider getSignatories()