Class CheckSignatureMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo

    @Mojo(name="check",
          defaultPhase=PROCESS_TEST_CLASSES,
          requiresDependencyResolution=TEST,
          threadSafe=true)
    public class CheckSignatureMojo
    extends org.apache.maven.plugin.AbstractMojo
    Checks the classes compiled by this module.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String[] annotations
      Annotation names to consider to ignore annotated methods, classes or fields.
      protected org.apache.maven.artifact.factory.ArtifactFactory artifactFactory  
      protected boolean checkTestClasses
      Should test classes be checked.
      (package private) static java.util.Map<java.io.File,​java.util.Map<java.lang.String,​Clazz>> classes  
      private java.lang.String[] excludeDependencies
      A list of artifact patterns to exclude.
      protected boolean failOnError
      Should signature check failures throw an error?
      protected boolean ignoreDependencies
      Should dependencies be ignored.
      protected java.lang.String[] ignores
      Class names to ignore signatures for (wildcards accepted).
      private java.lang.String[] includeDependencies
      A list of artifact patterns to include.
      protected org.apache.maven.artifact.repository.ArtifactRepository localRepository  
      protected java.io.File outputDirectory
      The directory for compiled classes.
      protected org.apache.maven.project.MavenProject project  
      protected org.apache.maven.artifact.resolver.ArtifactResolver resolver  
      protected Signature signature
      Signature module to use.
      protected boolean skip
      Should signature checking be skipped?
      protected java.io.File testOutputDirectory
      The directory for compiled test classes.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void apply​(ClassFileVisitor v)  
      private java.util.Set<java.lang.String> buildPackageList()
      List of packages defined in the application.
      private java.util.List<java.io.File> buildSourcePathList()  
      void execute()  
      private static org.apache.maven.model.Dependency findMatchingDependency​(Signature signature, java.util.List<org.apache.maven.model.Dependency> dependencies)  
      private static java.util.Map<java.lang.String,​Clazz> loadClasses​(java.io.File f)  
      void setSignature​(java.lang.String signatureId)  
      • Methods inherited from class org.apache.maven.plugin.AbstractMojo

        getLog, getPluginContext, setLog, setPluginContext
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • outputDirectory

        @Parameter(defaultValue="${project.build.outputDirectory}",
                   required=true,
                   readonly=true)
        protected java.io.File outputDirectory
        The directory for compiled classes.
      • testOutputDirectory

        @Parameter(defaultValue="${project.build.testOutputDirectory}",
                   required=true,
                   readonly=true)
        protected java.io.File testOutputDirectory
        The directory for compiled test classes.
        Since:
        1.19
      • checkTestClasses

        @Parameter(property="animal.sniffer.checkTestClasses",
                   defaultValue="false")
        protected boolean checkTestClasses
        Should test classes be checked.
        Since:
        1.19
      • signature

        @Parameter(required=true,
                   property="animal.sniffer.signature")
        protected Signature signature
        Signature module to use.
      • ignores

        @Parameter
        protected java.lang.String[] ignores
        Class names to ignore signatures for (wildcards accepted).
      • annotations

        @Parameter
        protected java.lang.String[] annotations
        Annotation names to consider to ignore annotated methods, classes or fields.

        By default 'org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement' and 'org.jvnet.animal_sniffer.IgnoreJRERequirement' are used.

        See Also:
        SignatureChecker.ANNOTATION_FQN, SignatureChecker.PREVIOUS_ANNOTATION_FQN
      • ignoreDependencies

        @Parameter(defaultValue="true")
        protected boolean ignoreDependencies
        Should dependencies be ignored.
      • includeDependencies

        @Parameter
        private java.lang.String[] includeDependencies
        A list of artifact patterns to include. Patterns can include * as a wildcard match for any whole segment, valid patterns are:
        • groupId:artifactId
        • groupId:artifactId:type
        • groupId:artifactId:type:version
        • groupId:artifactId:type:classifier
        • groupId:artifactId:type:classifier:version
        Since:
        1.12
      • excludeDependencies

        @Parameter
        private java.lang.String[] excludeDependencies
        A list of artifact patterns to exclude. Patterns can include * as a wildcard match for any whole segment, valid patterns are:
        • groupId:artifactId
        • groupId:artifactId:type
        • groupId:artifactId:type:version
        • groupId:artifactId:type:classifier
        • groupId:artifactId:type:classifier:version
        Since:
        1.12
      • skip

        @Parameter(defaultValue="false",
                   property="animal.sniffer.skip")
        protected boolean skip
        Should signature checking be skipped?
      • failOnError

        @Parameter(defaultValue="true",
                   property="animal.sniffer.failOnError")
        protected boolean failOnError
        Should signature check failures throw an error?
      • resolver

        @Component
        protected org.apache.maven.artifact.resolver.ArtifactResolver resolver
      • project

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

        @Parameter(defaultValue="${localRepository}",
                   readonly=true)
        protected org.apache.maven.artifact.repository.ArtifactRepository localRepository
      • artifactFactory

        @Component
        protected org.apache.maven.artifact.factory.ArtifactFactory artifactFactory
      • classes

        static java.util.Map<java.io.File,​java.util.Map<java.lang.String,​Clazz>> classes
    • Constructor Detail

      • CheckSignatureMojo

        public CheckSignatureMojo()
    • Method Detail

      • setSignature

        public void setSignature​(java.lang.String signatureId)
        Parameters:
        signatureId - A fully-qualified path to a signature jar. This allows users to set a signature for command-line invocations, such as:

        mvn org.codehaus.mojo:animal-sniffer-maven-plugin:1.15:check -Dsignature=org.codehaus.mojo.signature:java17:1.0

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException,
                            org.apache.maven.plugin.MojoFailureException
        Throws:
        org.apache.maven.plugin.MojoExecutionException
        org.apache.maven.plugin.MojoFailureException
      • loadClasses

        private static java.util.Map<java.lang.String,​Clazz> loadClasses​(java.io.File f)
                                                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • findMatchingDependency

        private static org.apache.maven.model.Dependency findMatchingDependency​(Signature signature,
                                                                                java.util.List<org.apache.maven.model.Dependency> dependencies)
      • buildPackageList

        private java.util.Set<java.lang.String> buildPackageList()
                                                          throws java.io.IOException
        List of packages defined in the application.
        Throws:
        java.io.IOException
      • apply

        private void apply​(ClassFileVisitor v)
                    throws java.io.IOException
        Throws:
        java.io.IOException
      • buildSourcePathList

        private java.util.List<java.io.File> buildSourcePathList()