Package org.codehaus.mojo.exec
Class AbstractExecMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.codehaus.mojo.exec.AbstractExecMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
ExecJavaMojo
,ExecMojo
public abstract class AbstractExecMojo
extends org.apache.maven.plugin.AbstractMojo
This class is used for unifying functionality between the 2 mojo exec plugins ('java' and 'exec'). It handles parsing
the arguments and adding source/test folders.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Add project output directory to classpath.private boolean
Add project resource directories to classpath.protected String
Defines the scope of the classpath passed to the plugin.private String
Arguments separated by space for the executed program.protected ExecutableDependency
If provided the ExecutableDependency identifies which of the plugin dependencies contains the executable class.private List<org.apache.maven.artifact.Artifact>
protected org.apache.maven.project.MavenProject
The enclosing project.private org.apache.maven.execution.MavenSession
private boolean
Skip the execution.private File
This folder is added to the list of those folders containing source to be compiled.private File
This folder is added to the list of those folders containing source to be compiled for testing.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
collectProjectArtifactsAndClasspath
(List<org.apache.maven.artifact.Artifact> artifacts, List<Path> theClasspathFiles) Collects the project artifacts in the specified List and the project specific classpath (build output and build test output) Files in the specified List, depending on the plugin classpathScope value.protected org.apache.maven.artifact.Artifact
Examine the plugin dependencies to find the executable artifact.protected final List<org.apache.maven.artifact.Artifact>
protected final org.apache.maven.execution.MavenSession
protected boolean
protected boolean
isSkip()
Check if the execution should be skippedprotected String[]
Parses the argument string given by the user.protected void
Register compile and compile tests source roots if necessaryMethods 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
Methods inherited from interface org.apache.maven.plugin.Mojo
execute
-
Field Details
-
project
@Parameter(defaultValue="${project}", readonly=true) protected org.apache.maven.project.MavenProject projectThe enclosing project. -
session
@Parameter(defaultValue="${session}", readonly=true, required=true) private org.apache.maven.execution.MavenSession session -
pluginDependencies
@Parameter(readonly=true, defaultValue="${plugin.artifacts}") private List<org.apache.maven.artifact.Artifact> pluginDependencies -
executableDependency
If provided the ExecutableDependency identifies which of the plugin dependencies contains the executable class. This will have the effect of only including plugin dependencies required by the identified ExecutableDependency.If includeProjectDependencies is set to
true
, all of the project dependencies will be included on the executable's classpath. Whether a particular project dependency is a dependency of the identified ExecutableDependency will be irrelevant to its inclusion in the classpath.- Since:
- 1.1-beta-1
-
sourceRoot
This folder is added to the list of those folders containing source to be compiled. Use this if your plugin generates source code. -
testSourceRoot
This folder is added to the list of those folders containing source to be compiled for testing. Use this if your plugin generates test source code. -
commandlineArgs
Arguments separated by space for the executed program. For example: "-j 20" -
classpathScope
Defines the scope of the classpath passed to the plugin. Set to compile,test,runtime or system depending on your needs. Since 1.1.2, the default value is 'runtime' instead of 'compile'. -
skip
@Parameter(property="exec.skip", defaultValue="false", alias="skip") private boolean skipSkip the execution. Starting with version 1.4.0 the former nameskip
has been changed intoexec.skip
.- Since:
- 1.0.1
-
addResourcesToClasspath
@Parameter(property="addResourcesToClasspath", defaultValue="false") private boolean addResourcesToClasspathAdd project resource directories to classpath. This is especially useful if the exec plugin is used for a code generator that reads its settings from the classpath.- Since:
- 1.5.1
-
addOutputToClasspath
@Parameter(property="addOutputToClasspath", defaultValue="true") private boolean addOutputToClasspathAdd project output directory to classpath. This might be undesirable when the exec plugin is run before the compile step. Default istrue
.- Since:
- 1.5.1
-
-
Constructor Details
-
AbstractExecMojo
public AbstractExecMojo()
-
-
Method Details
-
collectProjectArtifactsAndClasspath
protected void collectProjectArtifactsAndClasspath(List<org.apache.maven.artifact.Artifact> artifacts, List<Path> theClasspathFiles) Collects the project artifacts in the specified List and the project specific classpath (build output and build test output) Files in the specified List, depending on the plugin classpathScope value.- Parameters:
artifacts
- the list where to collect the scope specific artifactstheClasspathFiles
- the list where to collect the scope specific output directories
-
parseCommandlineArgs
Parses the argument string given by the user. Strings are recognized as everything between STRING_WRAPPER. PARAMETER_DELIMITER is ignored inside a string. STRING_WRAPPER and PARAMETER_DELIMITER can be escaped using ESCAPE_CHAR.- Returns:
- Array of String representing the arguments
- Throws:
org.apache.maven.plugin.MojoExecutionException
- for wrong formatted arguments
-
hasCommandlineArgs
protected boolean hasCommandlineArgs()- Returns:
- true of the mojo has command line arguments
-
registerSourceRoots
protected void registerSourceRoots()Register compile and compile tests source roots if necessary -
isSkip
protected boolean isSkip()Check if the execution should be skipped- Returns:
- true to skip
-
getSession
protected final org.apache.maven.execution.MavenSession getSession() -
getPluginDependencies
-
findExecutableArtifact
protected org.apache.maven.artifact.Artifact findExecutableArtifact() throws org.apache.maven.plugin.MojoExecutionExceptionExamine the plugin dependencies to find the executable artifact.- Returns:
- an artifact which refers to the actual executable tool (not a POM)
- Throws:
org.apache.maven.plugin.MojoExecutionException
- if no executable artifact was found
-