Class MojoExecutor


  • public class MojoExecutor
    extends Object
    Executes an arbitrary mojo using a fluent interface. This is meant to be executed within the context of a Maven mojo. Here is an execution that invokes the dependency plugin:
     executeMojo(
                  plugin(
                          groupId("org.apache.maven.plugins"),
                          artifactId("maven-dependency-plugin"),
                          version("2.0")
                  ),
                  goal("copy-dependencies"),
                  configuration(
                          element(name("outputDirectory"), "${project.build.directory}/foo")
                  ),
                  executionEnvironment(
                          project,
                          session,
                          pluginManager
                  )
              );
     
    • Constructor Detail

      • MojoExecutor

        public MojoExecutor()
    • Method Detail

      • executeMojo

        public static void executeMojo​(org.apache.maven.model.Plugin plugin,
                                       String goal,
                                       org.codehaus.plexus.util.xml.Xpp3Dom configuration,
                                       MojoExecutor.ExecutionEnvironment env)
                                throws org.apache.maven.plugin.MojoExecutionException
        Entry point for executing a mojo
        Parameters:
        plugin - The plugin to execute
        goal - The goal to execute
        configuration - The execution configuration
        env - The execution environment
        Throws:
        org.apache.maven.plugin.MojoExecutionException - If there are any exceptions locating or executing the mojo
      • executionEnvironment

        public static MojoExecutor.ExecutionEnvironment executionEnvironment​(org.apache.maven.project.MavenProject mavenProject,
                                                                             org.apache.maven.execution.MavenSession mavenSession,
                                                                             org.apache.maven.plugin.BuildPluginManager pluginManager)
        Constructs the MojoExecutor.ExecutionEnvironment instance fluently
        Parameters:
        mavenProject - The current Maven project
        mavenSession - The current Maven session
        pluginManager - The Build plugin manager
        Returns:
        The execution environment
        Throws:
        NullPointerException - if mavenProject, mavenSession or pluginManager are null
      • executionEnvironment

        public static MojoExecutor.ExecutionEnvironment executionEnvironment​(org.apache.maven.execution.MavenSession mavenSession,
                                                                             org.apache.maven.plugin.BuildPluginManager pluginManager)
        Constructs the MojoExecutor.ExecutionEnvironment instance fluently
        Parameters:
        mavenSession - The current Maven session
        pluginManager - The Build plugin manager
        Returns:
        The execution environment
        Throws:
        NullPointerException - if mavenProject, mavenSession or pluginManager are null
      • configuration

        public static org.codehaus.plexus.util.xml.Xpp3Dom configuration​(MojoExecutor.Element... elements)
        Builds the configuration for the goal using Elements
        Parameters:
        elements - A list of elements for the configuration section
        Returns:
        The elements transformed into the Maven-native XML format
      • plugin

        public static org.apache.maven.model.Plugin plugin​(String groupId,
                                                           String artifactId)
        Defines the plugin without its version or dependencies.
        Parameters:
        groupId - The group id
        artifactId - The artifact id
        Returns:
        The plugin instance
      • plugin

        public static org.apache.maven.model.Plugin plugin​(String groupId,
                                                           String artifactId,
                                                           String version)
        Defines a plugin without dependencies.
        Parameters:
        groupId - The group id
        artifactId - The artifact id
        version - The plugin version
        Returns:
        The plugin instance
      • plugin

        public static org.apache.maven.model.Plugin plugin​(String groupId,
                                                           String artifactId,
                                                           String version,
                                                           List<org.apache.maven.model.Dependency> dependencies)
        Defines a plugin.
        Parameters:
        groupId - The group id
        artifactId - The artifact id
        version - The plugin version
        dependencies - The plugin dependencies
        Returns:
        The plugin instance
      • groupId

        public static String groupId​(String groupId)
        Wraps the group id string in a more readable format
        Parameters:
        groupId - The value
        Returns:
        The value
      • artifactId

        public static String artifactId​(String artifactId)
        Wraps the artifact id string in a more readable format
        Parameters:
        artifactId - The value
        Returns:
        The value
      • version

        public static String version​(String version)
        Wraps the version string in a more readable format
        Parameters:
        version - The value
        Returns:
        The value
      • dependencies

        public static List<org.apache.maven.model.Dependency> dependencies​(org.apache.maven.model.Dependency... dependencies)
        Creates a list of dependencies.
        Parameters:
        dependencies - the dependencies
        Returns:
        A list of dependencies
      • dependency

        public static org.apache.maven.model.Dependency dependency​(String groupId,
                                                                   String artifactId,
                                                                   String version)
        Defines a dependency
        Parameters:
        groupId - The group id
        artifactId - The artifact id
        version - The plugin version
        Returns:
        the dependency instance
      • goal

        public static String goal​(String goal)
        Wraps the goal string in a more readable format
        Parameters:
        goal - The value
        Returns:
        The value
      • name

        public static String name​(String name)
        Wraps the element name string in a more readable format
        Parameters:
        name - The value
        Returns:
        The value
      • element

        public static MojoExecutor.Element element​(String name,
                                                   String value)
        Constructs the element with a textual body
        Parameters:
        name - The element name
        value - The element text value
        Returns:
        The element object
      • element

        public static MojoExecutor.Element element​(String name,
                                                   String value,
                                                   MojoExecutor.Attributes attributes)
        Constructs the element with a textual body and attributes
        Parameters:
        name - The element name
        value - The element text value
        attributes - The element attributes
        Returns:
        The element object
      • element

        public static MojoExecutor.Element element​(String name,
                                                   String value,
                                                   MojoExecutor.Attribute attribute)
        Constructs the element with a textual body and only attribute
        Parameters:
        name - The element name
        value - The element text value
        attribute - The element attribute
        Returns:
        The element object
      • element

        public static MojoExecutor.Element element​(String name,
                                                   MojoExecutor.Element... elements)
        Constructs the element containing child elements
        Parameters:
        name - The element name
        elements - The child elements
        Returns:
        The Element object
      • attribute

        public static MojoExecutor.Attribute attribute​(String name,
                                                       String value)
        Constructs the attribute
        Parameters:
        name - The attribute name
        value - The attribute value
        Returns:
        The Attribute object