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. In versions of maven prior to 2.0.6, it was possible to inherit versions that didn't match your dependencyManagement. See MNG-1577 for more info. This mojo is also useful for just 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
failBuild
Fail the build if a problem is detected.private boolean
ignoreDirect
Ignore Direct Dependency Overrides of dependencyManagement section.private org.apache.maven.project.MavenProject
project
private boolean
skip
Skip plugin execution completely.
-
Constructor Summary
Constructors Constructor Description AnalyzeDepMgt()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<java.lang.String,org.apache.maven.model.Exclusion>
addExclusions(java.util.List<org.apache.maven.model.Exclusion> exclusionList)
Returns a map of the exclusions using the Dependency ManagementKey as the keyset.private boolean
checkDependencyManagement()
Does the work of checking the DependencyManagement Section.void
execute()
java.lang.String
getArtifactManagementKey(org.apache.maven.artifact.Artifact artifact)
This function returns a string comparable with Dependency.GetManagementKey.java.util.List<org.apache.maven.artifact.Artifact>
getExclusionErrors(java.util.Map<java.lang.String,org.apache.maven.model.Exclusion> exclusions, java.util.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.java.lang.String
getExclusionKey(org.apache.maven.artifact.Artifact artifact)
java.lang.String
getExclusionKey(org.apache.maven.model.Exclusion ex)
java.util.Map<org.apache.maven.artifact.Artifact,org.apache.maven.model.Dependency>
getMismatch(java.util.Map<java.lang.String,org.apache.maven.model.Dependency> depMgtMap, java.util.Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
Calculate the mismatches between the DependencyManagement and resolved artifactsprotected org.apache.maven.project.MavenProject
getProject()
protected boolean
isFailBuild()
protected boolean
isIgnoreDirect()
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)
void
setProject(org.apache.maven.project.MavenProject theProject)
-
-
-
Field Detail
-
project
@Parameter(defaultValue="${project}", readonly=true, required=true) private 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
-
-
Method Detail
-
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 java.util.Map<java.lang.String,org.apache.maven.model.Exclusion> addExclusions(java.util.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 java.util.List<org.apache.maven.artifact.Artifact> getExclusionErrors(java.util.Map<java.lang.String,org.apache.maven.model.Exclusion> exclusions, java.util.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 java.lang.String getExclusionKey(org.apache.maven.artifact.Artifact artifact)
- Parameters:
artifact
-Artifact
- Returns:
- The resulting GA.
-
getExclusionKey
public java.lang.String getExclusionKey(org.apache.maven.model.Exclusion ex)
- Parameters:
ex
- The exclusion key.- Returns:
- The resulting combination of groupId+artifactId.
-
getMismatch
public java.util.Map<org.apache.maven.artifact.Artifact,org.apache.maven.model.Dependency> getMismatch(java.util.Map<java.lang.String,org.apache.maven.model.Dependency> depMgtMap, java.util.Set<org.apache.maven.artifact.Artifact> allDependencyArtifacts)
Calculate the mismatches between the DependencyManagement and resolved artifacts- Parameters:
depMgtMap
- contains the Dependency.GetManagementKey as the keyset for quick lookup.allDependencyArtifacts
- contains 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 java.lang.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
-
setProject
public void setProject(org.apache.maven.project.MavenProject theProject)
- Parameters:
theProject
- the project to set
-
isIgnoreDirect
protected final boolean isIgnoreDirect()
- Returns:
- the ignoreDirect
-
setIgnoreDirect
public void setIgnoreDirect(boolean theIgnoreDirect)
- Parameters:
theIgnoreDirect
- the ignoreDirect to set
-
-