Class PluginExecutor


  • public class PluginExecutor
    extends java.lang.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

      • PluginExecutor

        public PluginExecutor()
    • Method Detail

      • executeMojo

        public static void executeMojo​(org.apache.maven.model.Plugin plugin,
                                       java.lang.String goal,
                                       org.codehaus.plexus.util.xml.Xpp3Dom configuration,
                                       PluginExecutor.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 PluginExecutor.ExecutionEnvironment executionEnvironment​(org.apache.maven.project.MavenProject mavenProject,
                                                                               org.apache.maven.execution.MavenSession mavenSession,
                                                                               org.apache.maven.plugin.BuildPluginManager pluginManager)
        Constructs the PluginExecutor.ExecutionEnvironment instance fluently
        Parameters:
        mavenProject - The current Maven project
        mavenSession - The current Maven session
        pluginManager - The Build plugin manager
        Returns:
        The execution environment
        Throws:
        java.lang.NullPointerException - if mavenProject, mavenSession or pluginManager are null
      • executionEnvironment

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

        public static org.codehaus.plexus.util.xml.Xpp3Dom configuration​(PluginExecutor.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​(java.lang.String groupId,
                                                           java.lang.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​(java.lang.String groupId,
                                                           java.lang.String artifactId,
                                                           java.lang.String version)
        Defines a plugin without dependencies.
        Parameters:
        groupId - The group id
        artifactId - The artifact id
        version - The plugin version
        Returns:
        The plugin instance
      • groupId

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

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

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

        public static java.util.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​(java.lang.String groupId,
                                                                   java.lang.String artifactId,
                                                                   java.lang.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 java.lang.String goal​(java.lang.String goal)
        Wraps the goal string in a more readable format
        Parameters:
        goal - The value
        Returns:
        The value
      • name

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

        public static PluginExecutor.Element element​(java.lang.String name,
                                                     java.lang.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 PluginExecutor.Element element​(java.lang.String name,
                                                     java.lang.String value,
                                                     PluginExecutor.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 PluginExecutor.Element element​(java.lang.String name,
                                                     java.lang.String value,
                                                     PluginExecutor.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 PluginExecutor.Element element​(java.lang.String name,
                                                     PluginExecutor.Element... elements)
        Constructs the element containing child elements
        Parameters:
        name - The element name
        elements - The child elements
        Returns:
        The Element object
      • element

        public static PluginExecutor.Element element​(java.lang.String name,
                                                     PluginExecutor.Attributes attributes,
                                                     PluginExecutor.Element... elements)
        Constructs the element containing child elements and attributes
        Parameters:
        name - The element name
        attributes - The element attributes
        elements - The child elements
        Returns:
        The Element object
      • element

        public static PluginExecutor.Element element​(java.lang.String name,
                                                     PluginExecutor.Attribute attribute,
                                                     PluginExecutor.Element... elements)
        Constructs the element containing child elements and only attribute
        Parameters:
        name - The element name
        attribute - The element attribute
        elements - The child elements
        Returns:
        The Element object
      • attribute

        public static PluginExecutor.Attribute attribute​(java.lang.String name,
                                                         java.lang.String value)
        Constructs the attribute
        Parameters:
        name - The attribute name
        value - The attribute value
        Returns:
        The Attribute object
      • setLogger

        public static void setLogger​(Logger logger)