Package org.twdata.maven.mojoexecutor
Class MojoExecutor
- java.lang.Object
-
- org.twdata.maven.mojoexecutor.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 ) );
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MojoExecutor.Attribute
Attribute wrapper classstatic class
MojoExecutor.Attributes
Collection of attributes wrapper classstatic class
MojoExecutor.Element
Element wrapper class for configuration elementsstatic class
MojoExecutor.ExecutionEnvironment
Collects Maven execution information
-
Constructor Summary
Constructors Constructor Description MojoExecutor()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
artifactId(String artifactId)
Wraps the artifact id string in a more readable formatstatic MojoExecutor.Attribute
attribute(String name, String value)
Constructs the attributestatic MojoExecutor.Attributes
attributes(MojoExecutor.Attribute... attributes)
Constructs the attributes wrapperstatic org.codehaus.plexus.util.xml.Xpp3Dom
configuration(MojoExecutor.Element... elements)
Builds the configuration for the goal using Elementsstatic List<org.apache.maven.model.Dependency>
dependencies(org.apache.maven.model.Dependency... dependencies)
Creates a list of dependencies.static org.apache.maven.model.Dependency
dependency(String groupId, String artifactId, String version)
Defines a dependencystatic MojoExecutor.Element
element(String name, String value)
Constructs the element with a textual bodystatic MojoExecutor.Element
element(String name, String value, MojoExecutor.Attribute attribute)
Constructs the element with a textual body and only attributestatic MojoExecutor.Element
element(String name, String value, MojoExecutor.Attributes attributes)
Constructs the element with a textual body and attributesstatic MojoExecutor.Element
element(String name, MojoExecutor.Attribute attribute, MojoExecutor.Element... elements)
Constructs the element containing child elements and only attributestatic MojoExecutor.Element
element(String name, MojoExecutor.Attributes attributes, MojoExecutor.Element... elements)
Constructs the element containing child elements and attributesstatic MojoExecutor.Element
element(String name, MojoExecutor.Element... elements)
Constructs the element containing child elementsstatic void
executeMojo(org.apache.maven.model.Plugin plugin, String goal, org.codehaus.plexus.util.xml.Xpp3Dom configuration, MojoExecutor.ExecutionEnvironment env)
Entry point for executing a mojostatic MojoExecutor.ExecutionEnvironment
executionEnvironment(org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.plugin.BuildPluginManager pluginManager)
Constructs theMojoExecutor.ExecutionEnvironment
instance fluentlystatic MojoExecutor.ExecutionEnvironment
executionEnvironment(org.apache.maven.project.MavenProject mavenProject, org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.plugin.BuildPluginManager pluginManager)
Constructs theMojoExecutor.ExecutionEnvironment
instance fluentlystatic String
goal(String goal)
Wraps the goal string in a more readable formatstatic String
groupId(String groupId)
Wraps the group id string in a more readable formatstatic String
name(String name)
Wraps the element name string in a more readable formatstatic org.apache.maven.model.Plugin
plugin(String groupId, String artifactId)
Defines the plugin without its version or dependencies.static org.apache.maven.model.Plugin
plugin(String groupId, String artifactId, String version)
Defines a plugin without dependencies.static org.apache.maven.model.Plugin
plugin(String groupId, String artifactId, String version, List<org.apache.maven.model.Dependency> dependencies)
Defines a plugin.static String
version(String version)
Wraps the version string in a more readable format
-
-
-
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 executegoal
- The goal to executeconfiguration
- The execution configurationenv
- 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 theMojoExecutor.ExecutionEnvironment
instance fluently- Parameters:
mavenProject
- The current Maven projectmavenSession
- The current Maven sessionpluginManager
- 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 theMojoExecutor.ExecutionEnvironment
instance fluently- Parameters:
mavenSession
- The current Maven sessionpluginManager
- 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 idartifactId
- 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 idartifactId
- The artifact idversion
- 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 idartifactId
- The artifact idversion
- The plugin versiondependencies
- 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 idartifactId
- The artifact idversion
- 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 namevalue
- 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 namevalue
- The element text valueattributes
- 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 namevalue
- The element text valueattribute
- 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 nameelements
- The child elements- Returns:
- The Element object
-
element
public static MojoExecutor.Element element(String name, MojoExecutor.Attributes attributes, MojoExecutor.Element... elements)
Constructs the element containing child elements and attributes- Parameters:
name
- The element nameattributes
- The element attributeselements
- The child elements- Returns:
- The Element object
-
element
public static MojoExecutor.Element element(String name, MojoExecutor.Attribute attribute, MojoExecutor.Element... elements)
Constructs the element containing child elements and only attribute- Parameters:
name
- The element nameattribute
- The element attributeelements
- The child elements- Returns:
- The Element object
-
attributes
public static MojoExecutor.Attributes attributes(MojoExecutor.Attribute... attributes)
Constructs the attributes wrapper- Parameters:
attributes
- The attributes- Returns:
- The Attributes object
-
attribute
public static MojoExecutor.Attribute attribute(String name, String value)
Constructs the attribute- Parameters:
name
- The attribute namevalue
- The attribute value- Returns:
- The Attribute object
-
-