Class EnforceMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugins.enforcer.EnforceMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

@Mojo(name="enforce", defaultPhase=VALIDATE, requiresDependencyCollection=TEST, threadSafe=true) public class EnforceMojo extends org.apache.maven.plugin.AbstractMojo
This goal executes the defined enforcer-rules once per module.
  • Field Details

    • cache

      protected static Hashtable<String,EnforcerRule> cache
      This is a static variable used to persist the cached results across plugin invocations.
    • mojoExecution

      @Parameter(defaultValue="${mojoExecution}", readonly=true, required=true) protected org.apache.maven.plugin.MojoExecution mojoExecution
      MojoExecution needed by the ExpressionEvaluator
    • session

      @Parameter(defaultValue="${session}", readonly=true, required=true) protected org.apache.maven.execution.MavenSession session
      The MavenSession
    • project

      @Parameter(defaultValue="${project}", readonly=true, required=true) protected org.apache.maven.project.MavenProject project
      POM
    • skip

      @Parameter(property="enforcer.skip", defaultValue="false") protected boolean skip
      Flag to easily skip all checks
    • fail

      @Parameter(property="enforcer.fail", defaultValue="true") private boolean fail
      Flag to fail the build if at least one check fails.
    • failFast

      @Parameter(property="enforcer.failFast", defaultValue="false") private boolean failFast
      Fail on the first rule that doesn't pass
    • failIfNoRules

      @Parameter(property="enforcer.failIfNoRules", defaultValue="true") private boolean failIfNoRules
      Flag to fail the build if no rules are present
      Since:
      3.2.0
    • rules

      @Parameter private org.codehaus.plexus.configuration.PlexusConfiguration rules
      Rules configuration to execute as XML. Each first level tag represents rule name to execute. Inner tags are configurations for rule. Eg:
           <rules>
               <alwaysFail/>
               <alwaysPass>
                   <message>message for rule</message>
               </alwaysPass>
               <myRule implementation="org.example.MyRule"/>
           </rules>
       
      Since:
      1.0.0
    • rulesToSkip

      @Parameter(required=false, property="enforcer.skipRules") private List<String> rulesToSkip
      List of strings that matches the EnforcerRules to skip.
      Since:
      3.2.0
    • ignoreCache

      @Parameter(property="enforcer.ignoreCache", defaultValue="false") protected boolean ignoreCache
      Use this flag to disable rule result caching. This will cause all rules to execute on each project even if the rule indicates it can safely be cached.
    • container

      @Component private org.codehaus.plexus.PlexusContainer container
    • enforcerRuleManager

      @Component private EnforcerRuleManager enforcerRuleManager
    • ruleCache

      @Component private EnforcerRuleCache ruleCache
    • rulesToExecute

      private List<String> rulesToExecute
  • Constructor Details

    • EnforceMojo

      public EnforceMojo()
  • Method Details

    • setRulesToExecute

      @Parameter(required=false, property="enforcer.rules") public void setRulesToExecute(List<String> rulesToExecute) throws org.apache.maven.plugin.MojoExecutionException
      List of strings that matches the EnforcerRules to execute. Replacement for the rules property.
      Parameters:
      rulesToExecute - a rules to execute
      Throws:
      org.apache.maven.plugin.MojoExecutionException - when values are incorrect
      Since:
      3.2.0
    • setCommandLineRules

      @Parameter(required=false, property="rules") @Deprecated public void setCommandLineRules(List<String> rulesToExecute) throws org.apache.maven.plugin.MojoExecutionException
      Deprecated.
      Use enforcer.rules property instead
      List of strings that matches the EnforcerRules to execute.
      Parameters:
      rulesToExecute - a rules to execute
      Throws:
      org.apache.maven.plugin.MojoExecutionException - when values are incorrect
    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • processRuleConfigProviders

      private List<EnforcerRuleDesc> processRuleConfigProviders(List<EnforcerRuleDesc> rulesList)
    • filterOutRuleConfigProviders

      private List<EnforcerRuleDesc> filterOutRuleConfigProviders(List<EnforcerRuleDesc> rulesList)
    • executeRuleConfigProvider

      private org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration executeRuleConfigProvider(EnforcerRuleDesc ruleDesc)
    • executeRule

      private void executeRule(int ruleIndex, EnforcerRuleDesc ruleDesc, EnforcerRuleHelper helper) throws EnforcerRuleException
      Throws:
      EnforcerRuleException
    • executeRuleOld

      private void executeRuleOld(int ruleIndex, EnforcerRuleDesc ruleDesc, EnforcerRuleHelper helper) throws EnforcerRuleException
      Throws:
      EnforcerRuleException
    • executeRuleNew

      private void executeRuleNew(int ruleIndex, EnforcerRuleDesc ruleDesc) throws EnforcerRuleException
      Throws:
      EnforcerRuleException
    • createRulesFromCommandLineOptions

      private Optional<org.codehaus.plexus.configuration.PlexusConfiguration> createRulesFromCommandLineOptions()
      Create rules configuration based on command line provided rules list.
      Returns:
      an configuration in case where rules list is present or empty
    • filterOutSkippedRules

      private List<EnforcerRuleDesc> filterOutSkippedRules(List<EnforcerRuleDesc> allRules)
      Filter out (remove) rules that have been specifically skipped via additional configuration.
      Parameters:
      allRules - list of enforcer rules to go through and filter
      Returns:
      list of filtered rules
    • shouldExecute

      protected boolean shouldExecute(EnforcerRule rule)
      This method determines if a rule should execute based on the cache
      Parameters:
      rule - the rule to verify
      Returns:
      true if rule should be executed, otherwise false
    • setRulesToSkip

      public void setRulesToSkip(List<String> rulesToSkip)
      Set rule list to skip.
      Parameters:
      rulesToSkip - a rule list
    • setFail

      public void setFail(boolean theFail)
      Parameters:
      theFail - the fail to set
    • setFailFast

      public void setFailFast(boolean theFailFast)
      Parameters:
      theFailFast - the failFast to set
    • createRuleMessage

      private String createRuleMessage(int ruleIndex, EnforcerRuleDesc ruleDesc, EnforcerLevel level, EnforcerRuleException e)
    • getRuleName

      private String getRuleName(EnforcerRuleDesc ruleDesc)
    • setFailIfNoRules

      public void setFailIfNoRules(boolean thefailIfNoRules)
      Parameters:
      thefailIfNoRules - the failIfNoRules to set