Class RequireUpperBoundDeps
- java.lang.Object
-
- org.apache.maven.plugins.enforcer.AbstractStandardEnforcerRule
-
- org.apache.maven.plugins.enforcer.AbstractNonCacheableEnforcerRule
-
- org.apache.maven.plugins.enforcer.RequireUpperBoundDeps
-
- All Implemented Interfaces:
EnforcerRule
,EnforcerRule2
public class RequireUpperBoundDeps extends AbstractNonCacheableEnforcerRule
Rule to enforce that the resolved dependency is also the most recent one of all transitive dependencies.- Since:
- 1.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
RequireUpperBoundDeps.DependencyNodeHopCountPair
private static class
RequireUpperBoundDeps.RequireUpperBoundDepsVisitor
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>
excludes
Dependencies to ignore.private static org.apache.maven.plugin.logging.Log
log
private boolean
uniqueVersions
-
Constructor Summary
Constructors Constructor Description RequireUpperBoundDeps()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
buildErrorMessage(java.util.List<org.apache.maven.shared.dependency.graph.DependencyNode> conflict)
private java.util.List<java.lang.String>
buildErrorMessages(java.util.List<java.util.List<org.apache.maven.shared.dependency.graph.DependencyNode>> conflicts)
private java.lang.StringBuilder
buildTreeString(org.apache.maven.shared.dependency.graph.DependencyNode node)
void
execute(EnforcerRuleHelper helper)
This is the interface into the rule.private java.lang.String
getFullArtifactName(org.apache.maven.shared.dependency.graph.DependencyNode node, boolean usePremanaged)
private org.apache.maven.shared.dependency.graph.DependencyNode
getNode(EnforcerRuleHelper helper)
Uses theEnforcerRuleHelper
to populate the values of theDependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)
factory method.void
setExcludes(java.util.List<java.lang.String> excludes)
Sets dependencies to exclude.void
setUniqueVersions(boolean uniqueVersions)
Set totrue
if timestamped snapshots should be used.-
Methods inherited from class org.apache.maven.plugins.enforcer.AbstractNonCacheableEnforcerRule
getCacheId, isCacheable, isResultValid
-
Methods inherited from class org.apache.maven.plugins.enforcer.AbstractStandardEnforcerRule
getLevel, getMessage, setLevel, setMessage
-
-
-
-
Method Detail
-
setUniqueVersions
public void setUniqueVersions(boolean uniqueVersions)
Set totrue
if timestamped snapshots should be used.- Parameters:
uniqueVersions
-- Since:
- 1.3
-
setExcludes
public void setExcludes(java.util.List<java.lang.String> excludes)
Sets dependencies to exclude.- Parameters:
excludes
- a list ofgroupId:artifactId
names
-
getNode
private org.apache.maven.shared.dependency.graph.DependencyNode getNode(EnforcerRuleHelper helper) throws EnforcerRuleException
Uses theEnforcerRuleHelper
to populate the values of theDependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)
factory method.
This method simply exists to hide all the ugly lookup that theEnforcerRuleHelper
has to do.- Parameters:
helper
-- Returns:
- a Dependency Node which is the root of the project's dependency tree
- Throws:
EnforcerRuleException
- when the build should fail
-
execute
public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException
Description copied from interface:EnforcerRule
This is the interface into the rule. This method should throw an exception containing a reason message if the rule fails the check. The plugin will then decide based on the fail flag if it should stop or just log the message as a warning.- Parameters:
helper
- The helper provides access to the log, MavenSession and has helpers to get common components. It is also able to lookup components by class name.- Throws:
EnforcerRuleException
- the enforcer rule exception
-
buildErrorMessages
private java.util.List<java.lang.String> buildErrorMessages(java.util.List<java.util.List<org.apache.maven.shared.dependency.graph.DependencyNode>> conflicts)
-
buildErrorMessage
private java.lang.String buildErrorMessage(java.util.List<org.apache.maven.shared.dependency.graph.DependencyNode> conflict)
-
buildTreeString
private java.lang.StringBuilder buildTreeString(org.apache.maven.shared.dependency.graph.DependencyNode node)
-
getFullArtifactName
private java.lang.String getFullArtifactName(org.apache.maven.shared.dependency.graph.DependencyNode node, boolean usePremanaged)
-
-