@Mojo(name="purge-local-repository",
threadSafe=true,
requiresProject=false)
public class PurgeLocalRepositoryMojo
extends org.apache.maven.plugin.AbstractMojo
Modifier and Type | Class and Description |
---|---|
private class |
PurgeLocalRepositoryMojo.DirectDependencyFilter
Includes only direct project dependencies.
|
private class |
PurgeLocalRepositoryMojo.SnapshotsFilter
Includes only snapshot artifacts
|
Modifier and Type | Field and Description |
---|---|
private boolean |
actTransitively
Whether this mojo should act on all transitive dependencies.
|
static java.lang.String |
ARTIFACT_ID_FUZZINESS |
private org.apache.maven.artifact.handler.manager.ArtifactHandlerManager |
artifactHandlerManager
Artifact handler manager.
|
private org.apache.maven.shared.artifact.resolve.ArtifactResolver |
artifactResolver
The artifact resolver used to re-resolve dependencies, if that option is enabled.
|
private org.apache.maven.shared.dependencies.resolve.DependencyResolver |
dependencyResolver
The dependency resolver
|
private java.lang.String |
exclude
Comma-separated list of groupId:artifactId entries, which should be used to exclude artifacts from
deletion/refresh.
|
private java.util.List<java.lang.String> |
excludes
The list of dependencies in the form of groupId:artifactId which should NOT be deleted/refreshed.
|
static java.lang.String |
FILE_FUZZINESS |
static java.lang.String |
GROUP_ID_FUZZINESS |
private java.lang.String |
include
Comma-separated list of groupId:artifactId entries, which should be used to include artifacts for
deletion/refresh.
|
private java.util.List<java.lang.String> |
includes
The list of dependencies in the form of groupId:artifactId which should BE deleted/refreshed.
|
private org.apache.maven.artifact.repository.ArtifactRepository |
localRepository
The local repository, from which to delete artifacts.
|
private java.lang.String |
manualInclude
Comma-separated list of groupId:artifactId entries, which should be used to manually include artifacts for
deletion.
|
private java.util.List<java.lang.String> |
manualIncludes
The list of dependencies in the form of groupId:artifactId which should BE deleted/purged from the local
repository.
|
private org.apache.maven.plugin.MojoExecution |
mojoExecution
This mojo execution, used to determine if it was launched from the lifecycle or the command-line.
|
private org.apache.maven.project.MavenProject |
project
The current Maven project.
|
private java.util.List<org.apache.maven.project.MavenProject> |
reactorProjects
The Maven projects in the reactor.
|
private boolean |
reResolve
Whether to re-resolve the artifacts once they have been deleted from the local repository.
|
private java.lang.String |
resolutionFuzziness
Determines how liberally the plugin will delete an artifact from the local repository.
|
private org.apache.maven.execution.MavenSession |
session |
private boolean |
skip
Skip plugin execution completely.
|
private boolean |
snapshotsOnly
Whether to purge only snapshot artifacts.
|
private boolean |
verbose
Whether this plugin should output verbose messages.
|
static java.lang.String |
VERSION_FUZZINESS |
Constructor and Description |
---|
PurgeLocalRepositoryMojo() |
Modifier and Type | Method and Description |
---|---|
private org.apache.maven.shared.artifact.filter.resolve.TransformableFilter |
createPurgeArtifactsFilter(org.apache.maven.project.MavenProject project,
java.util.List<org.apache.maven.model.Dependency> dependencies,
java.util.Set<org.apache.maven.artifact.Artifact> purgedArtifacts)
Create the includes exclude filter to use when resolving and purging dependencies Also excludes any "system"
scope dependencies
|
void |
execute() |
private java.io.File |
findDeleteTarget(org.apache.maven.artifact.Artifact artifact) |
private java.lang.String |
gavToPath(java.lang.String gav)
Convert a groupId:artifactId:version to a file system path
|
private java.util.Set<org.apache.maven.artifact.Artifact> |
getFilteredResolvedArtifacts(org.apache.maven.project.MavenProject project,
java.util.List<org.apache.maven.model.Dependency> dependencies,
org.apache.maven.shared.artifact.filter.resolve.TransformableFilter filter) |
boolean |
isSkip() |
private void |
manualPurge(java.util.List<java.lang.String> includes)
Purge/Delete artifacts from the local repository according to the given patterns.
|
private java.util.List<java.lang.String> |
parseIncludes(java.lang.String include)
Convert comma separated list of includes to List object
|
private void |
purgeArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> artifacts) |
private void |
purgeLocalRepository(org.apache.maven.project.MavenProject project,
java.util.Set<org.apache.maven.artifact.Artifact> purgedArtifacts)
Purges the local repository for the dependencies in the given Maven project.
|
private void |
reResolveArtifacts(org.apache.maven.project.MavenProject project,
java.util.Set<org.apache.maven.artifact.Artifact> artifacts,
org.apache.maven.artifact.resolver.filter.ArtifactFilter filter) |
void |
setSkip(boolean skip) |
private boolean |
shouldPurgeAllProjectsInReactor()
Determines if all projects in the reactor should be purged from their dependencies.
|
private java.lang.String |
toPatternExcludes(org.apache.maven.artifact.Artifact artifact)
Returns a string that represents a pattern for an exclude filter for the given artifact.
|
private void |
verbose(java.lang.String message) |
public static final java.lang.String FILE_FUZZINESS
public static final java.lang.String VERSION_FUZZINESS
public static final java.lang.String ARTIFACT_ID_FUZZINESS
public static final java.lang.String GROUP_ID_FUZZINESS
@Parameter(defaultValue="${reactorProjects}", readonly=true, required=true) private java.util.List<org.apache.maven.project.MavenProject> reactorProjects
@Parameter(defaultValue="${project}", readonly=true, required=true) private org.apache.maven.project.MavenProject project
@Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession session
@Parameter(defaultValue="${mojo}", required=true, readonly=true) private org.apache.maven.plugin.MojoExecution mojoExecution
@Component private org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager
@Parameter private java.util.List<java.lang.String> manualIncludes
@Parameter(property="manualInclude") private java.lang.String manualInclude
manualIncludes
parameter, since List parameters
are not currently compatible with CLI specification.@Parameter private java.util.List<java.lang.String> includes
@Parameter(property="include") private java.lang.String include
includes
parameter, since List
parameters are not currently compatible with CLI specification.@Parameter private java.util.List<java.lang.String> excludes
@Parameter(property="exclude") private java.lang.String exclude
excludes
parameter, since List
parameters are not currently compatible with CLI specification.@Parameter(property="reResolve", defaultValue="true") private boolean reResolve
@Parameter(defaultValue="${localRepository}", readonly=true, required=true) private org.apache.maven.artifact.repository.ArtifactRepository localRepository
@Component private org.apache.maven.shared.dependencies.resolve.DependencyResolver dependencyResolver
@Component private org.apache.maven.shared.artifact.resolve.ArtifactResolver artifactResolver
@Parameter(property="resolutionFuzziness", defaultValue="version") private java.lang.String resolutionFuzziness
@Parameter(property="actTransitively", defaultValue="true") private boolean actTransitively
@Parameter(property="verbose", defaultValue="false") private boolean verbose
@Parameter(property="snapshotsOnly", defaultValue="false") private boolean snapshotsOnly
@Parameter(property="skip", defaultValue="false") private boolean skip
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
private boolean shouldPurgeAllProjectsInReactor()
true
if all projects in the reactor should be purged, false
otherwise.private void purgeLocalRepository(org.apache.maven.project.MavenProject project, java.util.Set<org.apache.maven.artifact.Artifact> purgedArtifacts) throws org.apache.maven.plugin.MojoFailureException
project
- Maven project.resolvedArtifactsToPurge
- The artifacts that were already purged.org.apache.maven.plugin.MojoFailureException
- in case of errors during the purge.private void manualPurge(java.util.List<java.lang.String> includes) throws org.apache.maven.plugin.MojoExecutionException
inclusionPatterns
- org.apache.maven.plugin.MojoExecutionException
private java.lang.String gavToPath(java.lang.String gav)
gav,
- the groupId:artifactId:version stringprivate org.apache.maven.shared.artifact.filter.resolve.TransformableFilter createPurgeArtifactsFilter(org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.model.Dependency> dependencies, java.util.Set<org.apache.maven.artifact.Artifact> purgedArtifacts)
project
- The Maven project.dependencies
- The dependencies to use as a reference if we're excluding transitive dependenciespurgedArtifacts
- The artifacts already purged.private java.lang.String toPatternExcludes(org.apache.maven.artifact.Artifact artifact)
artifact
- Artifact.private java.util.List<java.lang.String> parseIncludes(java.lang.String include)
include
- private java.util.Set<org.apache.maven.artifact.Artifact> getFilteredResolvedArtifacts(org.apache.maven.project.MavenProject project, java.util.List<org.apache.maven.model.Dependency> dependencies, org.apache.maven.shared.artifact.filter.resolve.TransformableFilter filter)
private void purgeArtifacts(java.util.Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.plugin.MojoFailureException
org.apache.maven.plugin.MojoFailureException
private void reResolveArtifacts(org.apache.maven.project.MavenProject project, java.util.Set<org.apache.maven.artifact.Artifact> artifacts, org.apache.maven.artifact.resolver.filter.ArtifactFilter filter) throws org.apache.maven.artifact.resolver.ArtifactResolutionException, org.apache.maven.artifact.resolver.ArtifactNotFoundException
org.apache.maven.artifact.resolver.ArtifactResolutionException
org.apache.maven.artifact.resolver.ArtifactNotFoundException
private java.io.File findDeleteTarget(org.apache.maven.artifact.Artifact artifact)
private void verbose(java.lang.String message)
public boolean isSkip()
public void setSkip(boolean skip)