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 final 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 put 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.SortedPropertiesASortedPropertiesmapping artifact file names to their SHA-512 hashes.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 access the project variables.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) Gets the unique artifact key for storage in our sha512 map.private StringgetSha512FilePath(File directory, File file) Gets the file path for thesha512checksum file for a given file.private voidCreates SHA-512 checksum files for detached artifacts in thetarget/commons-release-plugindirectory for upload byCommonsDistributionStagingMojo.private voidputAttachedArtifactInSha512Map(org.apache.maven.artifact.Artifact artifact) Computes the SHA-512 hash of an attached artifact and stores it in the map.private voidputFileInSha512Map(String artifactKey, File file) Computes a file's SHA-512 hash and stores it under its release artifact name.private voidWrites the artifacts' SHA-512 hashes 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
ASortedPropertiesmapping artifact file names to their SHA-512 hashes. -
project
@Parameter(defaultValue="${project}", required=true) private org.apache.maven.project.MavenProject projectThe Maven project context injection so that we can access the project variables. -
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()Constructs a new instance.
-
-
Method Details
-
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- Thrown if anIOExceptionoccurs.
-
execute
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
getArtifactKey
Gets 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
-
getSha512FilePath
Gets the file path for thesha512checksum file for a given file. -
hashArtifacts
Creates SHA-512 checksum files for detached artifacts in thetarget/commons-release-plugindirectory for upload byCommonsDistributionStagingMojo.- Throws:
org.apache.maven.plugin.MojoExecutionException- Thrown if anIOExceptionoccurs.
-
putAttachedArtifactInSha512Map
private void putAttachedArtifactInSha512Map(org.apache.maven.artifact.Artifact artifact) throws org.apache.maven.plugin.MojoExecutionException Computes the SHA-512 hash of an attached artifact and stores it in the map.- Parameters:
artifact- is a MavenArtifacttaken from the project when the mojo starts.- Throws:
org.apache.maven.plugin.MojoExecutionException- Thrown if anIOExceptionoccurs when computing the SHA-512 hash of the artifact.
-
putFileInSha512Map
private void putFileInSha512Map(String artifactKey, File file) throws org.apache.maven.plugin.MojoExecutionException Computes a file's SHA-512 hash and stores it under its release artifact name.- Parameters:
artifactKey- the release artifact name.file- the file to hash.- Throws:
org.apache.maven.plugin.MojoExecutionException- if the file cannot be read.
-
writeAllArtifactsInSha512PropertiesFile
private void writeAllArtifactsInSha512PropertiesFile() throws org.apache.maven.plugin.MojoExecutionExceptionWrites the artifacts' SHA-512 hashes to ./target/commons-release-plugin/sha512.properties.- Throws:
org.apache.maven.plugin.MojoExecutionException- Thrown if anIOExceptionoccurs while writing the file.
-