Class AbstractDependencyFilterMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.dependency.AbstractDependencyMojo
org.apache.maven.plugins.dependency.fromDependencies.AbstractDependencyFilterMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
Direct Known Subclasses:
AbstractFromDependenciesMojo, AbstractResolveMojo, BuildClasspathMojo, GoOfflineMojo, RenderDependenciesMojo

public abstract class AbstractDependencyFilterMojo extends AbstractDependencyMojo
Class that encapsulates the plugin parameters, and contains methods that handle dependency filtering.
See Also:
  • Field Details

    • overWriteReleases

      @Parameter(property="overWriteReleases", defaultValue="false") protected boolean overWriteReleases
      Overwrite release artifacts.
      Since:
      1.0
    • overWriteSnapshots

      @Parameter(property="overWriteSnapshots", defaultValue="false") protected boolean overWriteSnapshots
      Overwrite snapshot artifacts.
      Since:
      1.0
    • overWriteIfNewer

      @Parameter(property="overWriteIfNewer", defaultValue="true") protected boolean overWriteIfNewer
      Overwrite artifacts that don't exist or are older than the source.
      Since:
      2.0
    • excludeTransitive

      @Parameter(property="excludeTransitive", defaultValue="false") protected boolean excludeTransitive
      If we should exclude transitive dependencies.
      Since:
      2.0
    • includeTypes

      @Parameter(property="includeTypes", defaultValue="") protected String includeTypes
      Comma-separated list of Types to include. Empty String indicates include everything (default).
      Since:
      2.0
    • excludeTypes

      @Parameter(property="excludeTypes", defaultValue="") protected String excludeTypes
      Comma-separated list of Types to exclude. Empty String indicates don't exclude anything (default).
      Since:
      2.0
    • includeScope

      @Parameter(property="includeScope", defaultValue="") protected String includeScope
      Scope threshold to include. An empty string indicates include all dependencies (default).
      The scope threshold value being interpreted is the scope as Maven filters for creating a classpath, not as specified in the pom. In summary:
      • runtime include scope gives runtime and compile dependencies,
      • compile include scope gives compile, provided, and system dependencies,
      • test include scope gives all dependencies (equivalent to default),
      • provided include scope just gives provided dependencies,
      • system include scope just gives system dependencies.
      Since:
      2.0
    • excludeScope

      @Parameter(property="excludeScope", defaultValue="") protected String excludeScope
      Scope threshold to exclude, if no value is defined for include. An empty string indicates no dependencies (default). Unlike the other exclusion parameters, this property does not support a comma-delimited list of scope exclusions. Just one scope may be excluded at a time.
      The scope threshold value being interpreted is the scope as Maven filters for creating a classpath, not as specified in the pom. In summary:
      • runtime exclude scope excludes runtime and compile dependencies,
      • compile exclude scope excludes compile, provided, and system dependencies,
      • test exclude scope excludes all dependencies, then not really a legitimate option: it will fail, you probably meant to configure includeScope = compile
      • provided exclude scope just excludes provided dependencies,
      • system exclude scope just excludes system dependencies.
      Since:
      2.0
    • includeClassifiers

      @Parameter(property="includeClassifiers", defaultValue="") protected String includeClassifiers
      Comma-separated list of Classifiers to include. Empty string indicates include everything (default).
      Since:
      2.0
    • excludeClassifiers

      @Parameter(property="excludeClassifiers", defaultValue="") protected String excludeClassifiers
      Comma-separated list of Classifiers to exclude. Empty String indicates don't exclude anything (default).
      Since:
      2.0
    • classifier

      @Parameter(property="classifier", defaultValue="") protected String classifier
      Specify classifier to look for. Example: sources.
      Since:
      2.0
    • type

      @Parameter(property="type", defaultValue="") protected String type
      Specify type to look for when constructing artifact based on classifier. Example: java-source,jar,war.
      Since:
      2.0
    • excludeArtifactIds

      @Parameter(property="excludeArtifactIds", defaultValue="") protected String excludeArtifactIds
      Comma-separated list of artifact IDs to exclude.
      Since:
      2.0
    • includeArtifactIds

      @Parameter(property="includeArtifactIds", defaultValue="") protected String includeArtifactIds
      Comma-separated list of artifact IDs to include. Empty String indicates include everything (default).
      Since:
      2.0
    • excludeGroupIds

      @Parameter(property="excludeGroupIds", defaultValue="") protected String excludeGroupIds
      Comma-separated list of group IDs to exclude.
      Since:
      2.0
    • includeGroupIds

      @Parameter(property="includeGroupIds", defaultValue="") protected String includeGroupIds
      Comma-separated list of group IDs to include. Empty string indicates include everything (default).
      Since:
      2.0
    • markersDirectory

      @Parameter(property="markersDirectory", defaultValue="${project.build.directory}/dependency-maven-plugin-markers") protected File markersDirectory
      Directory to store flag files.
      Since:
      2.0
    • prependGroupId

      @Parameter(property="mdep.prependGroupId", defaultValue="false") protected boolean prependGroupId
      Prepend the group ID during copy.
      Since:
      2.2
    • graphRoots

      @Parameter private List<GraphRoot> graphRoots
      By default, this goal uses the project itself as the root of the dependency tree. With graphRoots, you can select a subtree of dependencies based on groupId and artifactId. After that, the general include/exclude filters can be applied.
      Since:
      3.10.0
    • resolverUtil

      private final ResolverUtil resolverUtil
    • projectBuilder

      private final org.apache.maven.project.ProjectBuilder projectBuilder
    • artifactHandlerManager

      private final org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager
  • Constructor Details

    • AbstractDependencyFilterMojo

      @Inject protected AbstractDependencyFilterMojo(org.apache.maven.execution.MavenSession session, org.sonatype.plexus.build.incremental.BuildContext buildContext, org.apache.maven.project.MavenProject project, ResolverUtil resolverUtil, org.apache.maven.project.ProjectBuilder projectBuilder, org.apache.maven.artifact.handler.manager.ArtifactHandlerManager artifactHandlerManager)
  • Method Details

    • getMarkedArtifactFilter

      protected abstract org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter getMarkedArtifactFilter()
      Return an ArtifactsFilter indicating which artifacts must be filtered out.
      Returns:
      an ArtifactsFilter indicating which artifacts must be filtered out
    • getResolvedDependencies

      protected Set<org.apache.maven.artifact.Artifact> getResolvedDependencies(boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Retrieves dependencies, either direct only or all including transitive.
      Parameters:
      stopOnFailure - true to fail if resolution does not work or false not to fail
      Returns:
      a set of artifacts
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of errors
    • getDependencySets

      protected DependencyStatusSets getDependencySets(boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      stopOnFailure - true/false
      Returns:
      DependencyStatusSets
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error
    • getDependencySets

      protected DependencyStatusSets getDependencySets(boolean stopOnFailure, boolean includeParents) throws org.apache.maven.plugin.MojoExecutionException
      Method creates filters and filters the projects dependencies. This method also transforms the dependencies if classifier is set. The dependencies are filtered in least specific to most specific order.
      Parameters:
      stopOnFailure - true to fail if artifacts can't be resolved false otherwise
      includeParents - true if parents should be included or not false
      Returns:
      DependencyStatusSets - Bean of TreeSets that contains information on the projects dependencies
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of errors
    • buildProjectFromArtifact

      private org.apache.maven.project.MavenProject buildProjectFromArtifact(org.apache.maven.artifact.Artifact artifact) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • addParentArtifacts

      private void addParentArtifacts(org.apache.maven.project.MavenProject project, Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getClassifierTranslatedDependencies

      private DependencyStatusSets getClassifierTranslatedDependencies(Set<org.apache.maven.artifact.Artifact> artifacts, boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Transform artifacts.
      Parameters:
      artifacts - set of artifacts Artifact
      stopOnFailure - true/false
      Returns:
      DependencyStatusSets - Bean of TreeSets that contains information on the projects dependencies
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error
    • filterMarkedDependencies

      protected DependencyStatusSets filterMarkedDependencies(Set<org.apache.maven.artifact.Artifact> artifacts) throws org.apache.maven.plugin.MojoExecutionException
      Filter the marked dependencies.
      Parameters:
      artifacts - the artifacts set Artifact
      Returns:
      status set DependencyStatusSets
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of an error
    • resolve

      private Set<org.apache.maven.artifact.Artifact> resolve(Set<org.eclipse.aether.artifact.Artifact> artifacts, boolean stopOnFailure) throws org.apache.maven.plugin.MojoExecutionException
      Parameters:
      artifacts - the set of artifacts
      stopOnFailure - true if we should fail with exception if an artifact couldn't be resolved false otherwise
      Returns:
      the resolved artifacts. Artifact.
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of error
    • collectArtifacts

      private Set<org.apache.maven.artifact.Artifact> collectArtifacts(org.apache.maven.project.MavenProject project) throws org.eclipse.aether.resolution.DependencyResolutionException
      Throws:
      org.eclipse.aether.resolution.DependencyResolutionException
    • resolveDependencyArtifacts

      private Set<org.apache.maven.artifact.Artifact> resolveDependencyArtifacts(org.apache.maven.model.Dependency root) throws org.eclipse.aether.resolution.DependencyResolutionException
      Throws:
      org.eclipse.aether.resolution.DependencyResolutionException
    • getMarkersDirectory

      public File getMarkersDirectory()
      Returns:
      returns the markersDirectory
    • setMarkersDirectory

      public void setMarkersDirectory(File theMarkersDirectory)
      Parameters:
      theMarkersDirectory - the markersDirectory to set
    • isPrependGroupId

      public boolean isPrependGroupId()
      Returns:
      true, if the groupId should be prepended to the filename
    • setPrependGroupId

      public void setPrependGroupId(boolean prependGroupId)
      Parameters:
      prependGroupId - true if the groupId must be prepended during the copy
    • getResolverUtil

      protected final ResolverUtil getResolverUtil()
      Returns:
      resolverUtil