Package org.twdata.maven.mojoexecutor
Class MojoExecutor
java.lang.Object
org.twdata.maven.mojoexecutor.MojoExecutor
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 ClassesModifier and TypeClassDescriptionstatic class
Attribute wrapper classstatic class
Collection of attributes wrapper classstatic class
Element wrapper class for configuration elementsstatic class
Collects Maven execution information -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String
artifactId
(String artifactId) Wraps the artifact id string in a more readable formatstatic MojoExecutor.Attribute
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
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 mojoexecutionEnvironment
(org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.plugin.BuildPluginManager pluginManager) Constructs theMojoExecutor.ExecutionEnvironment
instance fluentlyexecutionEnvironment
(org.apache.maven.project.MavenProject mavenProject, org.apache.maven.execution.MavenSession mavenSession, org.apache.maven.plugin.BuildPluginManager pluginManager) Constructs theMojoExecutor.ExecutionEnvironment
instance fluentlystatic String
Wraps the goal string in a more readable formatstatic String
Wraps the group id string in a more readable formatprivate static org.apache.maven.plugin.MojoExecution
mojoExecution
(org.apache.maven.plugin.descriptor.MojoDescriptor mojoDescriptor, String executionId, org.codehaus.plexus.util.xml.Xpp3Dom configuration) static String
Wraps the element name string in a more readable formatstatic org.apache.maven.model.Plugin
Defines the plugin without its version or dependencies.static org.apache.maven.model.Plugin
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
Wraps the version string in a more readable format
-
Field Details
-
logger
private static final org.slf4j.Logger logger
-
-
Constructor Details
-
MojoExecutor
public MojoExecutor()
-
-
Method Details
-
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
-
mojoExecution
private static org.apache.maven.plugin.MojoExecution mojoExecution(org.apache.maven.plugin.descriptor.MojoDescriptor mojoDescriptor, String executionId, org.codehaus.plexus.util.xml.Xpp3Dom configuration) -
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
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
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
Wraps the group id string in a more readable format- Parameters:
groupId
- The value- Returns:
- The value
-
artifactId
Wraps the artifact id string in a more readable format- Parameters:
artifactId
- The value- Returns:
- The value
-
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
Wraps the goal string in a more readable format- Parameters:
goal
- The value- Returns:
- The value
-
name
Wraps the element name string in a more readable format- Parameters:
name
- The value- Returns:
- The value
-
element
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
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
Constructs the attributes wrapper- Parameters:
attributes
- The attributes- Returns:
- The Attributes object
-
attribute
Constructs the attribute- Parameters:
name
- The attribute namevalue
- The attribute value- Returns:
- The Attribute object
-