Class BanTransitiveDependencies

All Implemented Interfaces:
EnforcerRule, EnforcerRule2

public class BanTransitiveDependencies extends AbstractNonCacheableEnforcerRule implements EnforcerRule
This rule bans all transitive dependencies. There is a configuration option to exclude certain artifacts from being checked.
  • Field Details

    • helper

      private EnforcerRuleHelper helper
    • excludes

      private List<String> excludes
      Specify the dependencies that will be ignored. This can be a list of artifacts in the format groupId[:artifactId][:version][:type][:scope]. Wildcard '*' can be used to in place of specific section (ie group:*:1.0 will match both 'group:artifact:1.0' and 'group:anotherArtifact:1.0')
      You can override this patterns by using includes. Version is a string representing standard maven version range. Empty patterns will be ignored.
    • includes

      private List<String> includes
      Specify the dependencies that will be checked. These are exceptions to excludes intended for more convenient and finer settings. This can be a list of artifacts in the format groupId[:artifactId][:version][:type][:scope]. Wildcard '*' can be used to in place of specific section (ie group:*:1.0 will match both 'group:artifact:1.0' and 'group:anotherArtifact:1.0')
      Version is a string representing standard maven version range. Empty patterns will be ignored.
  • Constructor Details

    • BanTransitiveDependencies

      public BanTransitiveDependencies()
  • Method Details

    • searchTree

      private static boolean searchTree(org.apache.maven.shared.dependency.graph.DependencyNode node, int level, ArtifactMatcher excludes, StringBuilder message) throws org.apache.maven.artifact.versioning.InvalidVersionSpecificationException
      Searches dependency tree recursively for transitive dependencies that are not excluded, while generating nice info message along the way.
      Throws:
      org.apache.maven.artifact.versioning.InvalidVersionSpecificationException
    • 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.
      Specified by:
      execute in interface EnforcerRule
      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
    • createDependencyGraphBuilder

      private org.apache.maven.shared.dependency.graph.DependencyGraphBuilder createDependencyGraphBuilder() throws org.codehaus.plexus.component.repository.exception.ComponentLookupException
      Throws:
      org.codehaus.plexus.component.repository.exception.ComponentLookupException