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 classRequireUpperBoundDeps.DependencyNodeHopCountPairprivate static classRequireUpperBoundDeps.RequireUpperBoundDepsVisitor
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>excludesDependencies to ignore.private static org.apache.maven.plugin.logging.Loglogprivate booleanuniqueVersions
-
Constructor Summary
Constructors Constructor Description RequireUpperBoundDeps()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.StringbuildErrorMessage(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.StringBuilderbuildTreeString(org.apache.maven.shared.dependency.graph.DependencyNode node)voidexecute(EnforcerRuleHelper helper)This is the interface into the rule.private java.lang.StringgetFullArtifactName(org.apache.maven.shared.dependency.graph.DependencyNode node, boolean usePremanaged)private org.apache.maven.shared.dependency.graph.DependencyNodegetNode(EnforcerRuleHelper helper)Uses theEnforcerRuleHelperto populate the values of theDependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)factory method.voidsetExcludes(java.util.List<java.lang.String> excludes)Sets dependencies to exclude.voidsetUniqueVersions(boolean uniqueVersions)Set totrueif 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 totrueif 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:artifactIdnames
-
getNode
private org.apache.maven.shared.dependency.graph.DependencyNode getNode(EnforcerRuleHelper helper) throws EnforcerRuleException
Uses theEnforcerRuleHelperto 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 theEnforcerRuleHelperhas 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:EnforcerRuleThis 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)
-
-