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
Fields Modifier and Type Field Description private static Set<String>
ARTIFACT_TYPES_TO_DETACH
A list of "artifact types" in the Maven vernacular, to be detached from the deployment.private org.apache.commons.collections4.properties.SortedProperties
artifactSha512s
ASortedProperties
ofArtifact
→String
containing the sha512 signatures for the individual artifacts, where theArtifact
is represented as:groupId:artifactId:version:type=sha512
.private List<org.apache.maven.artifact.Artifact>
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.private String
distSvnStagingUrl
The subversion staging url to which we upload all of our staged artifacts.private Boolean
isDistModule
A parameter to generally avoid running unless it is specifically turned on by the consuming module.private org.apache.maven.project.MavenProject
project
The maven project context injection so that we can get a hold of the variables at hand.private File
workingDirectory
The working directory intarget
that we use as a sandbox for the plugin.
-
Constructor Summary
Constructors Constructor Description CommonsDistributionDetachmentMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
copyRemovedArtifactsToWorkingDirectory()
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
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
.private void
putAttachedArtifactInSha512Map(org.apache.maven.artifact.Artifact artifact)
Takes an attached artifact and puts the signature in the map.private void
writeAllArtifactsInSha512PropertiesFile()
Writes to ./target/commons-release-plugin/sha512.properties the artifact sha512's.
-
-
-
Field Detail
-
ARTIFACT_TYPES_TO_DETACH
private static final Set<String> 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
private final List<org.apache.maven.artifact.Artifact> 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
private final org.apache.commons.collections4.properties.SortedProperties 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 project
The 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 workingDirectory
The working directory intarget
that we use as a sandbox for the plugin.
-
distSvnStagingUrl
@Parameter(defaultValue="", property="commons.distSvnStagingUrl") private String distSvnStagingUrl
The subversion staging url to which we upload all of our staged artifacts.
-
isDistModule
@Parameter(defaultValue="false", property="commons.release.isDistModule") private Boolean isDistModule
A parameter to generally avoid running unless it is specifically turned on by the consuming module.
-
-
Constructor Detail
-
CommonsDistributionDetachmentMojo
public CommonsDistributionDetachmentMojo()
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException
- 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.MojoExecutionException
Writes 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.MojoExecutionException
A 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
private void hashArtifacts() throws org.apache.maven.plugin.MojoExecutionException
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
private String getSha512FilePath(File directory, File file)
A helper method to create a file path for thesha512
signature file from a given file.
-
getArtifactKey
private String getArtifactKey(org.apache.maven.artifact.Artifact artifact)
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
-
-