Class AbstractGeneratorMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
    Direct Known Subclasses:
    DescriptorGeneratorMojo, HelpGeneratorMojo

    public abstract class AbstractGeneratorMojo
    extends org.apache.maven.plugin.AbstractMojo
    Abstract class for this Plugin.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.sonatype.plexus.build.incremental.BuildContext buildContext  
      private boolean checkExpectedProvidedScope
      Flag controlling is "expected dependencies in provided scope" check to be performed or not.
      protected java.lang.String encoding
      The file encoding of the source files.
      private java.util.List<java.lang.String> expectedProvidedScopeExclusions
      List of groupId:artifactId strings of artifact coordinates that are to be excluded from "expected provided scope" check.
      private java.util.List<java.lang.String> expectedProvidedScopeGroupIds
      List of groupId strings of artifact coordinates that are expected to be in "provided" scope.
      protected java.util.Set<java.lang.String> extractors
      The role names of mojo extractors to use.
      protected java.lang.String goalPrefix
      The goal prefix that will appear before the ":".
      protected org.apache.maven.artifact.repository.ArtifactRepository local
      Location of the local repository.
      private static java.lang.String LS
      System/OS line separator: used to format console messages.
      private java.util.List<java.lang.String> mojoDependencies
      Specify the dependencies as groupId:artifactId containing (abstract) Mojos, to filter dependencies scanned at runtime and focus on dependencies that are really useful to Mojo analysis.
      protected MojoScanner mojoScanner
      The component used for scanning the source tree for mojos.
      protected java.util.List<java.lang.String> packagingTypes
      Maven plugin packaging types.
      protected org.apache.maven.project.MavenProject project
      The project currently being built.
      protected java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepos
      List of Remote Repositories used by the resolver
      protected boolean skip
      Set this to "true" to skip invoking any goals or reports of the plugin.
      protected boolean skipErrorNoDescriptorsFound
      By default an exception is throw if no mojo descriptor is found.
      • Fields inherited from interface org.apache.maven.plugin.Mojo

        ROLE
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract Generator createGenerator()  
      private java.util.Set<org.apache.maven.artifact.Artifact> dependenciesNotInProvidedScope()
      Collects all dependencies expected to be in "provided" scope but are NOT in "provided" scope.
      void execute()
      private java.util.Set<org.apache.maven.artifact.Artifact> filterMojoDependencies()
      Get dependencies filtered with mojoDependencies configuration.
      (package private) static java.lang.String getDefaultGoalPrefix​(org.apache.maven.project.MavenProject project)  
      protected abstract java.io.File getOutputDirectory()  
      • 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

      • project

        @Parameter(defaultValue="${project}",
                   readonly=true)
        protected org.apache.maven.project.MavenProject project
        The project currently being built.
      • mojoScanner

        @Component
        protected MojoScanner mojoScanner
        The component used for scanning the source tree for mojos.
      • buildContext

        @Component
        protected org.sonatype.plexus.build.incremental.BuildContext buildContext
      • encoding

        @Parameter(property="encoding",
                   defaultValue="${project.build.sourceEncoding}")
        protected java.lang.String encoding
        The file encoding of the source files.
        Since:
        2.5
      • goalPrefix

        @Parameter
        protected java.lang.String goalPrefix
        The goal prefix that will appear before the ":".
      • skipErrorNoDescriptorsFound

        @Parameter(property="maven.plugin.skipErrorNoDescriptorsFound",
                   defaultValue="false")
        protected boolean skipErrorNoDescriptorsFound
        By default an exception is throw if no mojo descriptor is found. As the maven-plugin is defined in core, the descriptor generator mojo is bound to generate-resources phase. But for annotations, the compiled classes are needed, so skip error
        Since:
        3.0
      • extractors

        @Parameter
        protected java.util.Set<java.lang.String> extractors

        The role names of mojo extractors to use.

        If not set, all mojo extractors will be used. If set to an empty extractor name, no mojo extractors will be used.

        Example:
          <!-- Use all mojo extractors -->
          <extractors/>
        
          <!-- Use no mojo extractors -->
          <extractors>
              <extractor/>
          </extractors>
        
          <!-- Use only bsh mojo extractor -->
          <extractors>
              <extractor>bsh</extractor>
          </extractors>
         
      • skip

        @Parameter(defaultValue="false",
                   property="maven.plugin.skip")
        protected boolean skip
        Set this to "true" to skip invoking any goals or reports of the plugin.
        Since:
        2.8
      • mojoDependencies

        @Parameter
        private java.util.List<java.lang.String> mojoDependencies
        Specify the dependencies as groupId:artifactId containing (abstract) Mojos, to filter dependencies scanned at runtime and focus on dependencies that are really useful to Mojo analysis. By default, the value is null and all dependencies are scanned (as before this parameter was added). If specified in the configuration with no children, no dependencies are scanned.
        Since:
        3.5
      • remoteRepos

        @Parameter(defaultValue="${project.remoteArtifactRepositories}",
                   required=true,
                   readonly=true)
        protected java.util.List<org.apache.maven.artifact.repository.ArtifactRepository> remoteRepos
        List of Remote Repositories used by the resolver
        Since:
        3.0
      • local

        @Parameter(defaultValue="${localRepository}",
                   required=true,
                   readonly=true)
        protected org.apache.maven.artifact.repository.ArtifactRepository local
        Location of the local repository.
        Since:
        3.0
      • packagingTypes

        @Parameter
        protected java.util.List<java.lang.String> packagingTypes
        Maven plugin packaging types. Default is single "maven-plugin".
        Since:
        3.3
      • checkExpectedProvidedScope

        @Parameter(defaultValue="true",
                   property="maven.plugin.checkExpectedProvidedScope")
        private boolean checkExpectedProvidedScope
        Flag controlling is "expected dependencies in provided scope" check to be performed or not. Default value: true.
        Since:
        3.6.3
      • expectedProvidedScopeGroupIds

        @Parameter
        private java.util.List<java.lang.String> expectedProvidedScopeGroupIds
        List of groupId strings of artifact coordinates that are expected to be in "provided" scope. Default value: ["org.apache.maven"].
        Since:
        3.6.3
      • expectedProvidedScopeExclusions

        @Parameter
        private java.util.List<java.lang.String> expectedProvidedScopeExclusions
        List of groupId:artifactId strings of artifact coordinates that are to be excluded from "expected provided scope" check. Default value: ["org.apache.maven:maven-archiver", "org.apache.maven:maven-jxr"].
        Since:
        3.6.3
      • LS

        private static final java.lang.String LS
        System/OS line separator: used to format console messages.
    • Constructor Detail

      • AbstractGeneratorMojo

        public AbstractGeneratorMojo()
    • Method Detail

      • getOutputDirectory

        protected abstract java.io.File getOutputDirectory()
        Returns:
        the output directory where files will be generated.
      • createGenerator

        protected abstract Generator createGenerator()
        Returns:
        the wanted Generator implementation.
      • execute

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

        static java.lang.String getDefaultGoalPrefix​(org.apache.maven.project.MavenProject project)
      • dependenciesNotInProvidedScope

        private java.util.Set<org.apache.maven.artifact.Artifact> dependenciesNotInProvidedScope()
        Collects all dependencies expected to be in "provided" scope but are NOT in "provided" scope.
      • filterMojoDependencies

        private java.util.Set<org.apache.maven.artifact.Artifact> filterMojoDependencies()
        Get dependencies filtered with mojoDependencies configuration.
        Returns:
        eventually filtered dependencies, or even null if configured with empty mojoDependencies list
        See Also:
        mojoDependencies