Class EnforceMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable

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

      Fields 
      Modifier and Type Field Description
      protected static java.util.Hashtable<java.lang.String,​EnforcerRule> cache
      This is a static variable used to persist the cached results across plugin invocations.
      private java.lang.String[] commandLineRules
      Array of Strings that matches the EnforcerRules to execute.
      protected org.codehaus.plexus.PlexusContainer container  
      private boolean fail
      Flag to fail the build if a version check fails.
      private boolean failFast
      Fail on the first rule that doesn't pass
      protected boolean ignoreCache
      Use this flag to disable rule result caching.
      protected org.apache.maven.plugin.MojoExecution mojoExecution
      MojoExecution needed by the ExpressionEvaluator
      protected org.apache.maven.project.MavenProject project
      POM
      private EnforcerRule[] rules
      Array of objects that implement the EnforcerRule interface to execute.
      protected org.apache.maven.execution.MavenSession session
      The MavenSession
      protected boolean skip
      Flag to easily skip all checks
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Constructor Summary

      Constructors 
      Constructor Description
      EnforceMojo()  
    • Field Detail

      • cache

        protected static java.util.Hashtable<java.lang.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 a version check fails.
      • failFast

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

        @Parameter(required=false)
        private EnforcerRule[] rules
        Array of objects that implement the EnforcerRule interface to execute.
      • commandLineRules

        @Parameter(required=false,
                   property="rules")
        private java.lang.String[] commandLineRules
        Array of Strings that matches the EnforcerRules to execute.
      • 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

        protected org.codehaus.plexus.PlexusContainer container
    • Constructor Detail

      • EnforceMojo

        public EnforceMojo()
    • Method Detail

      • contextualize

        public void contextualize​(org.codehaus.plexus.context.Context context)
                           throws org.codehaus.plexus.context.ContextException
        Specified by:
        contextualize in interface org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable
        Throws:
        org.codehaus.plexus.context.ContextException
      • havingRules

        private boolean havingRules()
      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException
        Specified by:
        execute in interface org.apache.maven.plugin.Mojo
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • createRulesFromCommandLineOptions

        private EnforcerRule[] createRulesFromCommandLineOptions()
                                                          throws org.apache.maven.plugin.MojoExecutionException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • 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
      • isFail

        public boolean isFail()
        Returns:
        the fail
      • setFail

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

        public EnforcerRule[] getRules()
        Returns:
        the rules
      • setRules

        public void setRules​(EnforcerRule[] theRules)
        Parameters:
        theRules - the rules to set
      • setFailFast

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

        public boolean isFailFast()
      • createRuleMessage

        protected java.lang.String createRuleMessage​(int i,
                                                     java.lang.String currentRule,
                                                     EnforcerRuleException e)
      • isSkip

        public boolean isSkip()
        Returns:
        the skip
      • setSkip

        public void setSkip​(boolean theSkip)
        Parameters:
        theSkip - the skip to set
      • getProject

        public org.apache.maven.project.MavenProject getProject()
        Returns:
        the project
      • setProject

        public void setProject​(org.apache.maven.project.MavenProject theProject)
        Parameters:
        theProject - the project to set
      • getSession

        public org.apache.maven.execution.MavenSession getSession()
        Returns:
        the session
      • setSession

        public void setSession​(org.apache.maven.execution.MavenSession theSession)
        Parameters:
        theSession - the session to set