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
FieldsModifier and TypeFieldDescriptionA list of "artifact types" in the Maven vernacular, to be detached from the deployment.private final org.apache.commons.collections4.properties.SortedPropertiesASortedPropertiesofArtifact→Stringcontaining the sha512 signatures for the individual artifacts, where theArtifactis 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 StringThe subversion staging url to which we upload all of our staged artifacts.private BooleanA parameter to generally avoid running unless it is specifically turned on by the consuming module.private org.apache.maven.project.MavenProjectThe maven project context injection so that we can get a hold of the variables at hand.private FileThe working directory intargetthat we use as a sandbox for the plugin.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidA helper method to copy the newly detached artifacts totarget/commons-release-pluginso that theCommonsDistributionStagingMojocan find the artifacts later.voidexecute()private StringgetArtifactKey(org.apache.maven.artifact.Artifact artifact) Generates the unique artifact key for storage in our sha512 map.private StringgetSha512FilePath(File directory, File file) A helper method to create a file path for thesha512signature file from a given file.private voidA helper method that creates sha512 signature files for our detached artifacts in thetarget/commons-release-plugindirectory for the purpose of being uploaded by theCommonsDistributionStagingMojo.private voidputAttachedArtifactInSha512Map(org.apache.maven.artifact.Artifact artifact) Takes an attached artifact and puts the signature in the map.private voidWrites to ./target/commons-release-plugin/sha512.properties the artifact sha512's.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
ASortedPropertiesofArtifact→Stringcontaining the sha512 signatures for the individual artifacts, where theArtifactis 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 intargetthat 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 MavenArtifacttaken from the project at start time of mojo.- Throws:
org.apache.maven.plugin.MojoExecutionException- if anIOExceptionoccurs 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-pluginso that theCommonsDistributionStagingMojocan find the artifacts later.- Throws:
org.apache.maven.plugin.MojoExecutionException- if some form of anIOExceptionoccurs, 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-plugindirectory for the purpose of being uploaded by theCommonsDistributionStagingMojo.- Throws:
org.apache.maven.plugin.MojoExecutionException- if some form of anIOExceptionoccurs, we want it properly wrapped so that Maven can handle it.
-
getSha512FilePath
A helper method to create a file path for thesha512signature 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- theArtifactthat we wish to generate a key for.- Returns:
- the generated key
-