public class IncrementalBuildHelper
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CREATED_FILES_LST_FILENAME |
private org.apache.maven.shared.utils.io.DirectoryScanner |
directoryScanner
Used for detecting changes between the Mojo execution.
|
private static java.lang.String[] |
EMPTY_ARRAY |
private java.lang.String[] |
filesBeforeAction
Once the
beforeRebuildExecution(org.apache.maven.shared.incremental.IncrementalBuildHelperRequest) got called,
this will contain the list of files in the build directory. |
private static java.lang.String |
INPUT_FILES_LST_FILENAME |
private static java.lang.String |
MAVEN_STATUS_ROOT
the root directory to store status information about Maven executions in.
|
private org.apache.maven.project.MavenProject |
mavenProject
Needed for storing the status for the incremental build support.
|
private org.apache.maven.plugin.MojoExecution |
mojoExecution
Needed for storing the status for the incremental build support.
|
Constructor and Description |
---|
IncrementalBuildHelper(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.project.MavenProject mavenProject) |
IncrementalBuildHelper(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.execution.MavenSession mavenSession) |
Modifier and Type | Method and Description |
---|---|
void |
afterRebuildExecution(IncrementalBuildHelperRequest incrementalBuildHelperRequest)
This method collects and stores all information about files changed since
the call to
beforeRebuildExecution(org.apache.maven.shared.incremental.IncrementalBuildHelperRequest) . |
java.lang.String[] |
beforeRebuildExecution(IncrementalBuildHelperRequest incrementalBuildHelperRequest)
This method shall get invoked before the actual Mojo task gets triggered,
e.g.
|
org.apache.maven.shared.utils.io.DirectoryScanner |
getDirectoryScanner()
Get the existing DirectoryScanner used by this helper,
or create new a DirectoryScanner if none is yet set.
|
private static org.apache.maven.project.MavenProject |
getMavenProject(org.apache.maven.execution.MavenSession mavenSession)
small helper method to allow for the nullcheck in the ct invocation
|
java.io.File |
getMojoStatusDirectory()
We use a specific status directory for each Mojo execution to store state
which is needed during the next build invocation run.
|
boolean |
inputFileTreeChanged(org.apache.maven.shared.utils.io.DirectoryScanner dirScanner)
Detect whether the list of detected files picked up by the DirectoryScanner
has changed since the last build.
|
boolean |
inputFileTreeChanged(IncrementalBuildHelperRequest incrementalBuildHelperRequest)
Detect whether the list of detected files has changed since the last build.
|
void |
setDirectoryScanner(org.apache.maven.shared.utils.io.DirectoryScanner directoryScanner)
Set the DirectoryScanner which shall get used by this build helper.
|
private java.lang.String[] |
toArrayOfPath(java.util.Set<java.io.File> files) |
private static final java.lang.String MAVEN_STATUS_ROOT
public static final java.lang.String CREATED_FILES_LST_FILENAME
private static final java.lang.String INPUT_FILES_LST_FILENAME
private static final java.lang.String[] EMPTY_ARRAY
private org.apache.maven.plugin.MojoExecution mojoExecution
private org.apache.maven.project.MavenProject mavenProject
private org.apache.maven.shared.utils.io.DirectoryScanner directoryScanner
getDirectoryScanner();
private java.lang.String[] filesBeforeAction
beforeRebuildExecution(org.apache.maven.shared.incremental.IncrementalBuildHelperRequest)
got called,
this will contain the list of files in the build directory.public IncrementalBuildHelper(org.apache.maven.plugin.MojoExecution mojoExecution, org.apache.maven.execution.MavenSession mavenSession)
public IncrementalBuildHelper(org.apache.maven.plugin.MojoExecution mojoExecution, org.apache.maven.project.MavenProject mavenProject)
private static org.apache.maven.project.MavenProject getMavenProject(org.apache.maven.execution.MavenSession mavenSession)
public org.apache.maven.shared.utils.io.DirectoryScanner getDirectoryScanner()
public void setDirectoryScanner(org.apache.maven.shared.utils.io.DirectoryScanner directoryScanner)
directoryScanner
- public java.io.File getMojoStatusDirectory() throws org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoExecutionException
public boolean inputFileTreeChanged(IncrementalBuildHelperRequest incrementalBuildHelperRequest) throws org.apache.maven.plugin.MojoExecutionException
incrementalBuildHelperRequest
- true
if the set of inputFiles got changed since the last build.org.apache.maven.plugin.MojoExecutionException
public boolean inputFileTreeChanged(org.apache.maven.shared.utils.io.DirectoryScanner dirScanner) throws org.apache.maven.plugin.MojoExecutionException
dirScanner
- true
if the set of inputFiles got changed since the last build.org.apache.maven.plugin.MojoExecutionException
public java.lang.String[] beforeRebuildExecution(IncrementalBuildHelperRequest incrementalBuildHelperRequest) throws org.apache.maven.plugin.MojoExecutionException
This method shall get invoked before the actual Mojo task gets triggered, e.g. the actual compile in maven-compiler-plugin.
Attention: This method shall only get invoked if the plugin re-creates all the output.
It first picks up the list of files created in the previous build and delete them. This step is necessary to prevent left-overs. After that we take a 'directory snapshot' (list of all files which exist in the outputDirectory after the clean).
After the actual Mojo task got executed you should invoke the method
afterRebuildExecution(org.apache.maven.shared.incremental.IncrementalBuildHelperRequest)
to collect the list of files which got changed
by this task.
incrementalBuildHelperRequest
- org.apache.maven.plugin.MojoExecutionException
public void afterRebuildExecution(IncrementalBuildHelperRequest incrementalBuildHelperRequest) throws org.apache.maven.plugin.MojoExecutionException
This method collects and stores all information about files changed since
the call to beforeRebuildExecution(org.apache.maven.shared.incremental.IncrementalBuildHelperRequest)
.
Attention: This method shall only get invoked if the plugin re-creates all the output.
incrementalBuildHelperRequest
- will contains file sources to store if create files are not yet storedorg.apache.maven.plugin.MojoExecutionException
private java.lang.String[] toArrayOfPath(java.util.Set<java.io.File> files)