Class RequireReleaseDeps

All Implemented Interfaces:
EnforcerRuleBase

@Named("requireReleaseDeps") public final class RequireReleaseDeps extends AbstractStandardEnforcerRule
This rule checks that no snapshots are included.
Author:
Brian Fox
  • Constructor Details

    • RequireReleaseDeps

      @Inject public RequireReleaseDeps(org.apache.maven.execution.MavenSession session, org.apache.maven.enforcer.rules.dependency.ResolverUtil resolverUtil)
  • Method Details

    • execute

      public void execute() throws EnforcerRuleException
      Description copied from class: AbstractEnforcerRule
      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 and rule level if it should stop or just log the message as a warning.
      Throws:
      EnforcerRuleException - the enforcer rule exception
      EnforcerRuleError - in order to brake a build immediately
    • getErrorMessage

      protected String getErrorMessage()
    • validate

      protected boolean validate(org.apache.maven.artifact.Artifact artifact)
      Validates a dependency artifact if it fulfills the enforcer rule
      Parameters:
      artifact - dependency to be checked against the list of excludes
      Returns:
      true if the dependency passes the rule, false if the dependency triggers a validation error
    • setOnlyWhenRelease

      public void setOnlyWhenRelease(boolean onlyWhenRelease)
    • setFailWhenParentIsSnapshot

      public void setFailWhenParentIsSnapshot(boolean failWhenParentIsSnapshot)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getSession

      protected org.apache.maven.execution.MavenSession getSession()
    • validate

      protected boolean validate(org.eclipse.aether.graph.DependencyNode node, int level, StringBuilder messageBuilder)
    • setSearchTransitive

      public void setSearchTransitive(boolean theSearchTransitive)
      Sets the search transitive.
      Parameters:
      theSearchTransitive - the searchTransitive to set
    • getExcludes

      public List<String> getExcludes()
      Gets the excludes.
      Returns:
      the excludes
    • setExcludes

      public void setExcludes(List<String> theExcludes)
      Specify the banned dependencies. This can be a list of artifacts in the format groupId[:artifactId][:version]. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
      The rule will fail if any dependency matches any exclude, unless it also matches an include rule.
      Parameters:
      theExcludes - the excludes to set
      See Also:
    • getIncludes

      public List<String> getIncludes()
      Gets the includes.
      Returns:
      the includes
    • setIncludes

      public void setIncludes(List<String> theIncludes)
      Specify the allowed dependencies. This can be a list of artifacts in the format groupId[:artifactId][:version]. Any of the sections can be a wildcard by using '*' (ie group:*:1.0)
      Includes override the exclude rules. It is meant to allow wide exclusion rules with wildcards and still allow a smaller set of includes.
      For example, to ban all xerces except xerces-api → exclude "xerces", include "xerces:xerces-api"
      Parameters:
      theIncludes - the includes to set
      See Also:
    • isSearchTransitive

      public boolean isSearchTransitive()
    • setLog

      public void setLog(EnforcerLogger log)
      Used by EnforcerMojo to inject logger instance
      Specified by:
      setLog in interface EnforcerRuleBase
      Parameters:
      log - an EnforcerLogger instance
    • getLog

      public EnforcerLogger getLog()
      Provide an EnforcerLogger instance for Rule

      NOTICE A logger is not available in constructors.

      Returns:
      an EnforcerLogger instance