Class PedanticDependencyConfigurationEnforcer

java.lang.Object
com.github.ferstl.maven.pomenforcers.AbstractPedanticEnforcer
com.github.ferstl.maven.pomenforcers.PedanticDependencyConfigurationEnforcer
All Implemented Interfaces:
org.apache.maven.enforcer.rule.api.EnforcerRule, org.apache.maven.enforcer.rule.api.EnforcerRule2, org.apache.maven.enforcer.rule.api.EnforcerRuleBase

public class PedanticDependencyConfigurationEnforcer extends AbstractPedanticEnforcer
This enforcer makes sure that dependency versions and exclusions are declared in the <dependencyManagement> section.
 ### Example
     <rules>
       <dependencConfiguration implementation="com.github.ferstl.maven.pomenforcers.PedanticDependencyConfigurationEnforcer">
         <!-- Manage dependency versions in dependency management -->
         <manageVersions>true</manageVersions>
         <!-- allow property references such as ${project.version} as versions outside dependency management -->
         <allowUnmanagedProjectVersions>true</allowUnmanagedProjectVersions>
         <!-- set the allowed property names for the allowUnmanagedProjectVersions option -->
         <allowedUnmanagedProjectVersionProperties>some-property.version,some-other.version</allowedUnmanagedProjectVersionProperties>
         <!-- all dependency exclusions must be defined in dependency managment -->
         <manageExclusions>true</manageExclusions>
       </dependencyConfiguration>
     </rules>
 
Since:
1.0.0
Enforcer Rule ID:
PedanticEnforcerRule.DEPENDENCY_CONFIGURATION
  • Constructor Details

    • PedanticDependencyConfigurationEnforcer

      public PedanticDependencyConfigurationEnforcer()
  • Method Details

    • setManageVersions

      public void setManageVersions(boolean manageVersions)
      If set to true, all dependency versions have to be defined in the dependency management.
      Parameters:
      manageVersions - Manage dependency versions in the dependency management.
      Since:
      1.0.0
      Enforcer Configuration Parameter
      Default Value:
      true
    • setAllowUnmanagedProjectVersions

      public void setAllowUnmanagedProjectVersions(boolean allowUnmanagedProjectVersions)
      If set to true, ${project.version} may be used within the dependencies section.
      Parameters:
      allowUnmanagedProjectVersions - Allow project versions outside of the dependencies section.
      Since:
      1.0.0
      Enforcer Configuration Parameter
      Default Value:
      true
    • setAllowedUnmanagedProjectVersionProperties

      public void setAllowedUnmanagedProjectVersionProperties(String allowedUnmanagedProjectVersionProperties)
      Comma-separated list of Maven property variable names (without the ${...} decorators) which are allowed to be used as version references outside dependency management. Has no effect if allowUnmanagedProjectVersions is set to false.
      Parameters:
      allowedUnmanagedProjectVersionProperties - Set allowed property references for allowUnmanagedProjectVersions option.
      Since:
      2.2.0
      Enforcer Configuration Parameter
      Default Value:
      project.version,version
    • setManageExclusions

      public void setManageExclusions(boolean manageExclusions)
      If set to true, all dependency exclusions must be declared in the dependency management.
      Parameters:
      manageExclusions - Manage exclusion in dependency management.
      Since:
      1.0.0
      Enforcer Configuration Parameter
      Default Value:
      true
    • getDescription

      protected PedanticEnforcerRule getDescription()
      Specified by:
      getDescription in class AbstractPedanticEnforcer
    • accept

      protected void accept(PedanticEnforcerVisitor visitor)
      Specified by:
      accept in class AbstractPedanticEnforcer
    • doEnforce

      protected void doEnforce(ErrorReport report)
      Specified by:
      doEnforce in class AbstractPedanticEnforcer