Class CommonsDistributionDetachmentMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.commons.release.plugin.mojos.CommonsDistributionDetachmentMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="detach-distributions",
defaultPhase=VERIFY,
threadSafe=true,
aggregator=true)
public class CommonsDistributionDetachmentMojo
extends org.apache.maven.plugin.AbstractMojo
The purpose of this Maven mojo is to detach the artifacts generated by the maven-assembly-plugin,
which for the Apache Commons Project do not get uploaded to Nexus, and putting those artifacts
in the dev distribution location for Apache projects.
- Since:
- 1.0
-
Field Summary
Modifier and TypeFieldDescriptionA list of "artifact types" in the Maven vernacular, to be detached from the deployment.private final org.apache.commons.collections4.properties.SortedProperties
ASortedProperties
ofArtifact
→String
containing the sha512 signatures for the individual artifacts, where theArtifact
is represented as:groupId:artifactId:version:type=sha512
.private final List<org.apache.maven.artifact.Artifact>
This list is supposed to hold the Maven references to the aforementioned artifacts so that we can upload them to svn after they've been detached from the Maven deployment.private String
The subversion staging url to which we upload all of our staged artifacts.private Boolean
A parameter to generally avoid running unless it is specifically turned on by the consuming module.private org.apache.maven.project.MavenProject
The maven project context injection so that we can get a hold of the variables at hand.private File
The working directory intarget
that we use as a sandbox for the plugin.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate void
A helper method to copy the newly detached artifacts totarget/commons-release-plugin
so that theCommonsDistributionStagingMojo
can find the artifacts later.void
execute()
private String
getArtifactKey
(org.apache.maven.artifact.Artifact artifact) Generates the unique artifact key for storage in our sha512 map.private String
getSha512FilePath
(File directory, File file) A helper method to create a file path for thesha512
signature file from a given file.private void
A helper method that creates sha512 signature files for our detached artifacts in thetarget/commons-release-plugin
directory for the purpose of being uploaded by theCommonsDistributionStagingMojo
.private void
putAttachedArtifactInSha512Map
(org.apache.maven.artifact.Artifact artifact) Takes an attached artifact and puts the signature in the map.private void
Writes to .Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
ARTIFACT_TYPES_TO_DETACH
A list of "artifact types" in the Maven vernacular, to be detached from the deployment. For the time being we want all artifacts generated by the maven-assembly-plugin to be detached from the deployment, namely *-src.zip, *-src.tar.gz, *-bin.zip, *-bin.tar.gz, and the corresponding .asc pgp signatures. -
detachedArtifacts
This list is supposed to hold the Maven references to the aforementioned artifacts so that we can upload them to svn after they've been detached from the Maven deployment. -
artifactSha512s
ASortedProperties
ofArtifact
→String
containing the sha512 signatures for the individual artifacts, where theArtifact
is represented as:groupId:artifactId:version:type=sha512
. -
project
@Parameter(defaultValue="${project}", required=true) private org.apache.maven.project.MavenProject projectThe maven project context injection so that we can get a hold of the variables at hand. -
workingDirectory
@Parameter(defaultValue="${project.build.directory}/commons-release-plugin", property="commons.outputDirectory") private File workingDirectoryThe working directory intarget
that we use as a sandbox for the plugin. -
distSvnStagingUrl
The subversion staging url to which we upload all of our staged artifacts. -
isDistModule
@Parameter(defaultValue="false", property="commons.release.isDistModule") private Boolean isDistModuleA parameter to generally avoid running unless it is specifically turned on by the consuming module.
-
-
Constructor Details
-
CommonsDistributionDetachmentMojo
public CommonsDistributionDetachmentMojo()
-
-
Method Details
-
execute
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
putAttachedArtifactInSha512Map
private void putAttachedArtifactInSha512Map(org.apache.maven.artifact.Artifact artifact) throws org.apache.maven.plugin.MojoExecutionException Takes an attached artifact and puts the signature in the map.- Parameters:
artifact
- is a MavenArtifact
taken from the project at start time of mojo.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if anIOException
occurs when getting the sha512 of the artifact.
-
writeAllArtifactsInSha512PropertiesFile
private void writeAllArtifactsInSha512PropertiesFile() throws org.apache.maven.plugin.MojoExecutionExceptionWrites to ./target/commons-release-plugin/sha512.properties the artifact sha512's.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if we can't write the file due to anIOException
.
-
copyRemovedArtifactsToWorkingDirectory
private void copyRemovedArtifactsToWorkingDirectory() throws org.apache.maven.plugin.MojoExecutionExceptionA helper method to copy the newly detached artifacts totarget/commons-release-plugin
so that theCommonsDistributionStagingMojo
can find the artifacts later.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if some form of anIOException
occurs, we want it properly wrapped so that Maven can handle it.
-
hashArtifacts
A helper method that creates sha512 signature files for our detached artifacts in thetarget/commons-release-plugin
directory for the purpose of being uploaded by theCommonsDistributionStagingMojo
.- Throws:
org.apache.maven.plugin.MojoExecutionException
- if some form of anIOException
occurs, we want it properly wrapped so that Maven can handle it.
-
getSha512FilePath
A helper method to create a file path for thesha512
signature file from a given file. -
getArtifactKey
Generates the unique artifact key for storage in our sha512 map. For example, commons-test-1.4-src.tar.gz should have its name as the key.- Parameters:
artifact
- theArtifact
that we wish to generate a key for.- Returns:
- the generated key
-