public interface BuildContext
Modifier and Type | Field and Description |
---|---|
static int |
SEVERITY_ERROR |
static int |
SEVERITY_WARNING |
Modifier and Type | Method and Description |
---|---|
void |
addError(File file,
int line,
int column,
String message,
Throwable cause)
Deprecated.
Use addMessage with severity=SEVERITY_WARNING instead
|
void |
addMessage(File file,
int line,
int column,
String message,
int severity,
Throwable cause)
Adds a message to the build context.
|
void |
addWarning(File file,
int line,
int column,
String message,
Throwable cause)
Deprecated.
Use addMessage with severity=SEVERITY_ERROR instead
|
Object |
getValue(String key)
Returns value associated with
key during previous mojo execution. |
boolean |
hasDelta(File file)
Returns
true if the file has changed since last build or is not
under basedir. |
boolean |
hasDelta(List relpaths)
Returns
true if any file or folder identified by relpaths has
changed since last build. |
boolean |
hasDelta(String relpath)
Returns
true if file or folder identified by relpath has
changed since last build. |
boolean |
isIncremental()
Returns
true if this build context is incremental. |
boolean |
isUptodate(File target,
File source)
Returns true, if the target file exists and is uptodate compared to the source file.
|
org.codehaus.plexus.util.Scanner |
newDeleteScanner(File basedir)
Returned Scanner scans
basedir for files and directories
deleted since last build. |
OutputStream |
newFileOutputStream(File file)
Returns new OutputStream that writes to the
file . |
org.codehaus.plexus.util.Scanner |
newScanner(File basedir)
Convenience method, fully equal to newScanner(basedir, false)
|
org.codehaus.plexus.util.Scanner |
newScanner(File basedir,
boolean ignoreDelta)
Returned Scanner scans files and folders under
basedir . |
void |
refresh(File file)
Indicates that the file or folder content has been modified during the build.
|
void |
removeMessages(File file)
Removes all messages associated with a file or folder during a previous build.
|
void |
setValue(String key,
Object value)
Associate specified
key with specified value
in the build context. |
static final int SEVERITY_WARNING
static final int SEVERITY_ERROR
boolean hasDelta(String relpath)
true
if file or folder identified by relpath
has
changed since last build.relpath
- is path relative to build context basedirboolean hasDelta(File file)
true
if the file has changed since last build or is not
under basedir.boolean hasDelta(List relpaths)
true
if any file or folder identified by relpaths
has
changed since last build.relpaths
- Listvoid refresh(File file)
newFileOutputStream(File)
OutputStream newFileOutputStream(File file) throws IOException
file
.
Files changed using OutputStream returned by this method do not need to be
explicitly refreshed using refresh(File)
.
As an optional optimisation, OutputStreams created by incremental build
context will attempt to avoid writing to the file if file content
has not changed.IOException
org.codehaus.plexus.util.Scanner newScanner(File basedir)
org.codehaus.plexus.util.Scanner newDeleteScanner(File basedir)
basedir
for files and directories
deleted since last build. Returns empty Scanner if basedir
is not under this build context basedir.org.codehaus.plexus.util.Scanner newScanner(File basedir, boolean ignoreDelta)
basedir
.
If this is an incremental build context and ignoreDelta
is false
, the scanner will only "see" files and folders with
content changes since last build.
If ignoreDelta
is true
, the scanner will "see" all
files and folders.
Please beware that ignoreDelta=false does NOT work reliably for operations
that copy resources from source to target locations. Returned Scanner
only scans changed source resources and it does not consider changed or deleted
target resources. This results in missing or stale target resources.
Starting with 0.5.0, recommended way to process resources is to use
#newScanner(basedir,true) to locate all source resources and isUptodate(File, File)
to optimized processing of uptodate target resources.
Returns empty Scanner if basedir
is not under this build context basedir.http://jira.codehaus.org/browse/MSHARED-125
boolean isIncremental()
true
if this build context is incremental.
Scanners created by newScanner(File)
of an incremental build context
will ignore files and folders that were not changed since last build.
Additionally, newDeleteScanner(File)
will scan files and directories
deleted since last build.void setValue(String key, Object value)
key
with specified value
in the build context.
Primary (and the only) purpose of this method is to allow preservation of
state needed for proper incremental behaviour between consecutive executions
of the same mojo needed to.
For example, maven-plugin-plugin:descriptor mojo
can store collection of extracted MojoDescritpor during first invocation. Then
on each consecutive execution maven-plugin-plugin:descriptor will only need
to extract MojoDescriptors for changed files.getValue(String)
Object getValue(String key)
key
during previous mojo execution.
This method always returns null
for non-incremental builds
(i.e., isIncremental()
returns false
) and mojos are
expected to fall back to full, non-incremental behaviour.setValue(String, Object)
,
isIncremental()
void addWarning(File file, int line, int column, String message, Throwable cause)
void addError(File file, int line, int column, String message, Throwable cause)
void addMessage(File file, int line, int column, String message, int severity, Throwable cause)
file
- The file or folder with which the message is associated. Should not be null and it is recommended to be
an absolute path.line
- The line number inside the file. Use 1 (not 0) for the first line. Use 0 for unknown/unspecified.column
- The column number inside the file. Use 1 (not 0) for the first column. Use 0 for unknown/unspecified.severity
- The severity of the message: SEVERITY_WARNING or SEVERITY_ERROR.cause
- A Throwable object associated with the message. Can be null.void removeMessages(File file)
boolean isUptodate(File target, File source)
Copyright © 2016. All rights reserved.