Class AnalyzeDepMgt

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.dependency.analyze.AnalyzeDepMgt
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="analyze-dep-mgt", requiresDependencyResolution=TEST, threadSafe=true) public class AnalyzeDepMgt extends org.apache.maven.plugin.AbstractMojo
This mojo looks at the dependencies after final resolution and looks for mismatches in your dependencyManagement section. This mojo is also useful for detecting projects that override the dependencyManagement directly. Set ignoreDirect to false to detect these otherwise normal conditions.
Since:
2.0-alpha-3
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private boolean
    Fail the build if a problem is detected.
    private boolean
    Ignore Direct Dependency Overrides of dependencyManagement section.
    private final org.apache.maven.project.MavenProject
     
    private boolean
    Skip plugin execution completely.

    Fields inherited from interface org.apache.maven.plugin.Mojo

    ROLE
  • Constructor Summary

    Constructors
    Constructor
    Description
    AnalyzeDepMgt(org.apache.maven.project.MavenProject project)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Map<String, org.apache.maven.model.Exclusion>
    addExclusions(List<org.apache.maven.model.Exclusion> exclusionList)
    Returns a map of the exclusions using the Dependency ManagementKey as the keyset.
    private boolean
    Does the work of checking the DependencyManagement Section.
    void
     
    getArtifactManagementKey(org.apache.maven.artifact.Artifact artifact)
    This function returns a string comparable with Dependency.GetManagementKey.
    List<org.apache.maven.artifact.Artifact>
    getExclusionErrors(Map<String, org.apache.maven.model.Exclusion> exclusions, Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
    Returns a List of the artifacts that should have been excluded, but were found in the dependency tree.
    getExclusionKey(org.apache.maven.artifact.Artifact artifact)
     
    getExclusionKey(org.apache.maven.model.Exclusion ex)
     
    Map<org.apache.maven.artifact.Artifact, org.apache.maven.model.Dependency>
    getMismatch(Map<String, org.apache.maven.model.Dependency> depMgtMap, Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
    Calculate the mismatches between the DependencyManagement and resolved artifacts.
    protected final org.apache.maven.project.MavenProject
     
    protected final boolean
     
    protected final boolean
     
    void
    logMismatch(org.apache.maven.artifact.Artifact dependencyArtifact, org.apache.maven.model.Dependency dependencyFromDepMgt)
    This function displays the log to the screen showing the versions and information about the artifacts that don't match.
    void
    setFailBuild(boolean theFailBuild)
     
    void
    setIgnoreDirect(boolean theIgnoreDirect)
     

    Methods inherited from class org.apache.maven.plugin.AbstractMojo

    getLog, getPluginContext, setLog, setPluginContext

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • project

      private final org.apache.maven.project.MavenProject project
    • failBuild

      @Parameter(property="mdep.analyze.failBuild", defaultValue="false") private boolean failBuild
      Fail the build if a problem is detected.
    • ignoreDirect

      @Parameter(property="mdep.analyze.ignore.direct", defaultValue="true") private boolean ignoreDirect
      Ignore Direct Dependency Overrides of dependencyManagement section.
    • skip

      @Parameter(property="mdep.analyze.skip", defaultValue="false") private boolean skip
      Skip plugin execution completely.
      Since:
      2.7
  • Constructor Details

    • AnalyzeDepMgt

      @Inject public AnalyzeDepMgt(org.apache.maven.project.MavenProject project)
  • Method Details

    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
      org.apache.maven.plugin.MojoFailureException
    • checkDependencyManagement

      private boolean checkDependencyManagement() throws org.apache.maven.plugin.MojoExecutionException
      Does the work of checking the DependencyManagement Section.
      Returns:
      true if errors are found
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • addExclusions

      public Map<String, org.apache.maven.model.Exclusion> addExclusions(List<org.apache.maven.model.Exclusion> exclusionList)
      Returns a map of the exclusions using the Dependency ManagementKey as the keyset.
      Parameters:
      exclusionList - to be added to the map
      Returns:
      a map of the exclusions using the Dependency ManagementKey as the keyset
    • getExclusionErrors

      public List<org.apache.maven.artifact.Artifact> getExclusionErrors(Map<String, org.apache.maven.model.Exclusion> exclusions, Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
      Returns a List of the artifacts that should have been excluded, but were found in the dependency tree.
      Parameters:
      exclusions - a map of the DependencyManagement exclusions, with the ManagementKey as the key and Dependency as the value
      allDependencyArtifacts - resolved artifacts to be compared
      Returns:
      list of artifacts that should have been excluded
    • getExclusionKey

      public String getExclusionKey(org.apache.maven.artifact.Artifact artifact)
      Parameters:
      artifact - Artifact
      Returns:
      the resulting GA
    • getExclusionKey

      public String getExclusionKey(org.apache.maven.model.Exclusion ex)
      Parameters:
      ex - the exclusion key
      Returns:
      the resulting combination of groupId+artifactId
    • getMismatch

      public Map<org.apache.maven.artifact.Artifact, org.apache.maven.model.Dependency> getMismatch(Map<String, org.apache.maven.model.Dependency> depMgtMap, Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
      Calculate the mismatches between the DependencyManagement and resolved artifacts.
      Parameters:
      depMgtMap - a keyset of the Dependency.GetManagementKey for quick lookup
      allDependencyArtifacts - the set of all artifacts to compare
      Returns:
      a map containing the resolved artifact as the key and the listed dependency as the value
    • logMismatch

      public void logMismatch(org.apache.maven.artifact.Artifact dependencyArtifact, org.apache.maven.model.Dependency dependencyFromDepMgt) throws org.apache.maven.plugin.MojoExecutionException
      This function displays the log to the screen showing the versions and information about the artifacts that don't match.
      Parameters:
      dependencyArtifact - the artifact that was resolved
      dependencyFromDepMgt - the dependency listed in the DependencyManagement section
      Throws:
      org.apache.maven.plugin.MojoExecutionException - in case of errors
    • getArtifactManagementKey

      public String getArtifactManagementKey(org.apache.maven.artifact.Artifact artifact)
      This function returns a string comparable with Dependency.GetManagementKey.
      Parameters:
      artifact - to gen the key for
      Returns:
      a string in the form: groupId:ArtifactId:Type[:Classifier]
    • isFailBuild

      protected final boolean isFailBuild()
      Returns:
      the failBuild
    • setFailBuild

      public void setFailBuild(boolean theFailBuild)
      Parameters:
      theFailBuild - the failBuild to set
    • getProject

      protected final org.apache.maven.project.MavenProject getProject()
      Returns:
      the project
    • isIgnoreDirect

      protected final boolean isIgnoreDirect()
      Returns:
      the ignoreDirect
    • setIgnoreDirect

      public void setIgnoreDirect(boolean theIgnoreDirect)
      Parameters:
      theIgnoreDirect - the ignoreDirect to set