Package com.igormaznitsa.jcp.maven
Class PreprocessorMojo
java.lang.Object
org.apache.maven.plugin.AbstractMojo
com.igormaznitsa.jcp.maven.PreprocessorMojo
- All Implemented Interfaces:
PreprocessorLogger
,org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
- Direct Known Subclasses:
PreprocessTestsMojo
@Mojo(name="preprocess",
defaultPhase=GENERATE_SOURCES,
threadSafe=true,
requiresProject=true)
public class PreprocessorMojo
extends org.apache.maven.plugin.AbstractMojo
implements PreprocessorLogger
The Mojo makes preprocessing of defined or project root source folders and place result in defined or predefined folder, also it can replace the source folder for a maven
project to use the preprocessed sources.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Manage mode to allow whitespace between the // and the #.private boolean
Be precise in processing of the last next line char in files, it will not be added if it is not presented if to turn on the mode..private File[]
List of external configuration files.private boolean
Clear the destination folder before preprocessing (if it exists).private boolean
Flag to compare generated content with existing file and if it is the same then to not override the file, it brings overheadThe Project source roots for non-test mode.private boolean
Copy file attributes for copied and generated files.private File
The Destination folder where generated sources will be placed in non-test mode.private boolean
Make dry run of the preprocessor without any saving of result.private String
List of file extensions to be excluded from the preprocessing process.private String[]
List of sub-folders in source folders to be excluded from preprocessing, ANT path pattern format allowed.private Properties
List of global preprocessing variables.private boolean
Flag to ignore missing source folders, if false then mojo fail for any missing source folder, if true then missing folder will be ignored.private String
The Input text encoding to be used for preprocessing, by default it uses defined in project properties.private boolean
Disable removing lines from preprocessed files, it allows to keep line numeration similar to original sources.private boolean
Disable overriding of the source root folders for maven project after preprocessing.private String
The Encoding for preprocessed text output, by default it uses defined in project properties.private boolean
Preserve indents in lines marked by '//$' and '//$$' directives.private String
List of file extensions to be preprocessed.private org.apache.maven.project.MavenProject
The Maven Project to be preprocessed.private boolean
Remove all Java like commentaries from preprocessed sources.private boolean
Skip preprocessing.private String
The Directly defined source directory, it will make plugin to preprocess the folder instead of project and maven defined ones.The Project source roots for test mode.private File
Destination folder where generated sources will be placed in test-mode.private boolean
Flag to interpret unknown variable as FALSE.private boolean
Allow usage of the preprocessor for test sources (since 5.3.4 version).private boolean
Turn on the verbose mode for preprocessing process.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
Log a debug messagevoid
Log an error messagevoid
execute()
boolean
boolean
File[]
boolean
getClear()
boolean
boolean
String[]
boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
Log an information messageboolean
boolean
boolean
isSkip()
(package private) PreprocessorContext
makePreprocessorContext
(String sourceFoldersInPreprocessorFormat) private String
private void
void
setAllowWhitespace
(boolean flag) void
setCareForLastNextLine
(boolean flag) void
setCfgFiles
(File[] files) void
setClear
(boolean flag) void
setCompareDestination
(boolean flag) void
setCopyFileAttributes
(boolean flag) void
setDestination
(File destination) void
setDisableOut
(boolean value) void
setExcluded
(String excluded) void
setExcludedFolders
(String... antPatterns) void
setGlobalVars
(Properties vars) void
setIgnoreMissingSources
(boolean flag) void
setInEncoding
(String value) void
setKeepLines
(boolean keepLines) void
setKeepSrcRoot
(boolean flag) void
setOutEncoding
(String value) void
setPreserveIndent
(boolean flag) void
setProcessing
(String processing) void
setRemoveComments
(boolean value) void
setSkip
(boolean flag) void
void
setTestDestination
(File destination) void
setUnknownVarAsFalse
(boolean flag) void
setUseTestSources
(boolean flag) void
setVerbose
(boolean verbose) void
Log a warning messageMethods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
compileSourceRoots
@Parameter(alias="compileSourceRoots", defaultValue="${project.compileSourceRoots}", required=true, readonly=true) private List<String> compileSourceRootsThe Project source roots for non-test mode. -
testCompileSourceRoots
@Parameter(alias="testCompileSourceRoots", defaultValue="${project.testCompileSourceRoots}", required=true, readonly=true) private List<String> testCompileSourceRootsThe Project source roots for test mode. -
project
@Parameter(defaultValue="${project}", required=true, readonly=true) private org.apache.maven.project.MavenProject projectThe Maven Project to be preprocessed. -
source
The Directly defined source directory, it will make plugin to preprocess the folder instead of project and maven defined ones. By default it is empty and is not used. -
copyFileAttributes
@Parameter(alias="copyFileAttributes", defaultValue="false") private boolean copyFileAttributesCopy file attributes for copied and generated files.- Since:
- 6.1.2
-
destination
@Parameter(alias="destination", defaultValue="${project.build.directory}/generated-sources/preprocessed") private File destinationThe Destination folder where generated sources will be placed in non-test mode. -
testDestination
@Parameter(alias="testDestination", defaultValue="${project.build.directory}/generated-test-sources/preprocessed") private File testDestinationDestination folder where generated sources will be placed in test-mode. -
inEncoding
@Parameter(alias="inEncoding", defaultValue="${project.build.sourceEncoding}") private String inEncodingThe Input text encoding to be used for preprocessing, by default it uses defined in project properties. -
outEncoding
@Parameter(alias="outEncoding", defaultValue="${project.build.sourceEncoding}") private String outEncodingThe Encoding for preprocessed text output, by default it uses defined in project properties. -
ignoreMissingSources
@Parameter(alias="ignoreMissingSources", defaultValue="false") private boolean ignoreMissingSourcesFlag to ignore missing source folders, if false then mojo fail for any missing source folder, if true then missing folder will be ignored.- Since:
- 6.1.1
-
excluded
List of file extensions to be excluded from the preprocessing process. By default excluded XML files. -
processing
List of file extensions to be preprocessed. By default java,txt,htm,html -
unknownVarAsFalse
@Parameter(alias="unknownVarAsFalse", defaultValue="false") private boolean unknownVarAsFalseFlag to interpret unknown variable as FALSE. -
disableOut
@Parameter(alias="disableOut", defaultValue="false") private boolean disableOutMake dry run of the preprocessor without any saving of result. -
verbose
@Parameter(alias="verbose", defaultValue="false") private boolean verboseTurn on the verbose mode for preprocessing process. -
clear
@Parameter(alias="clear", defaultValue="false") private boolean clearClear the destination folder before preprocessing (if it exists). -
careForLastNextLine
@Parameter(alias="careForLastNextLine", defaultValue="false") private boolean careForLastNextLineBe precise in processing of the last next line char in files, it will not be added if it is not presented if to turn on the mode.. -
keepSrcRoot
@Parameter(alias="keepSrcRoot", defaultValue="false") private boolean keepSrcRootDisable overriding of the source root folders for maven project after preprocessing. -
removeComments
@Parameter(alias="removeComments", defaultValue="false") private boolean removeCommentsRemove all Java like commentaries from preprocessed sources. -
globalVars
List of global preprocessing variables. -
excludedFolders
List of sub-folders in source folders to be excluded from preprocessing, ANT path pattern format allowed. -
cfgFiles
List of external configuration files. -
keepLines
@Parameter(alias="keepLines", defaultValue="true") private boolean keepLinesDisable removing lines from preprocessed files, it allows to keep line numeration similar to original sources. -
allowWhitespace
@Parameter(alias="allowWhitespace", defaultValue="false") private boolean allowWhitespaceManage mode to allow whitespace between the // and the #. -
preserveIndent
@Parameter(alias="preserveIndent", defaultValue="false") private boolean preserveIndentPreserve indents in lines marked by '//$' and '//$$' directives. The Directives will be replaced by white spaces chars. -
useTestSources
@Parameter(alias="useTestSources", defaultValue="false") private boolean useTestSourcesAllow usage of the preprocessor for test sources (since 5.3.4 version). -
skip
@Parameter(alias="skip", property="jcp.preprocess.skip", defaultValue="false") private boolean skipSkip preprocessing.- Since:
- 6.1.1
-
compareDestination
@Parameter(alias="compareDestination", defaultValue="false") private boolean compareDestinationFlag to compare generated content with existing file and if it is the same then to not override the file, it brings overhead
-
-
Constructor Details
-
PreprocessorMojo
public PreprocessorMojo()
-
-
Method Details
-
setExcludedFolders
-
getExcludedFolders
-
setIgnoreMissingSources
public void setIgnoreMissingSources(boolean flag) -
isIgnoreMissingSources
public boolean isIgnoreMissingSources() -
setSkip
public void setSkip(boolean flag) -
isSkip
public boolean isSkip() -
setPreserveIndent
public void setPreserveIndent(boolean flag) -
getPreserveIndent
public boolean getPreserveIndent() -
setCopyFileAttributes
public void setCopyFileAttributes(boolean flag) -
getCopyFileAttributes
public boolean getCopyFileAttributes() -
setUseTestSources
public void setUseTestSources(boolean flag) -
getUseTestSources
public boolean getUseTestSources() -
setClear
public void setClear(boolean flag) -
getClear
public boolean getClear() -
setCareForLastNextLine
public void setCareForLastNextLine(boolean flag) -
getCarForLastNextLine
public boolean getCarForLastNextLine() -
setKeepSrcRoot
public void setKeepSrcRoot(boolean flag) -
getKeepSrcRoot
public boolean getKeepSrcRoot() -
setGlobalVars
-
getGlobalVars
-
setCfgFiles
-
getCfgFiles
-
setCompareDestination
public void setCompareDestination(boolean flag) -
isCompareDestination
public boolean isCompareDestination() -
setSource
-
getSource
-
setDestination
-
getDestination
-
setTestDestination
-
getTestDestination
-
setInEncoding
-
getInEncoding
-
setOutEncoding
-
getOutEncoding
-
setExcluded
-
getExcluded
-
setUnknownVarAsFalse
public void setUnknownVarAsFalse(boolean flag) -
getUnknownVarAsFalse
public boolean getUnknownVarAsFalse() -
setProcessing
-
getProcessing
-
setDisableOut
public void setDisableOut(boolean value) -
getDisableOut
public boolean getDisableOut() -
setVerbose
public void setVerbose(boolean verbose) -
getVerbose
public boolean getVerbose() -
setKeepLines
public void setKeepLines(boolean keepLines) -
getKeepLines
public boolean getKeepLines() -
setAllowWhitespace
public void setAllowWhitespace(boolean flag) -
getAllowWhitespace
public boolean getAllowWhitespace() -
setRemoveComments
public void setRemoveComments(boolean value) -
getRemoveComments
public boolean getRemoveComments() -
makeSourceRootList
-
replaceSourceRootByPreprocessingDestinationFolder
private void replaceSourceRootByPreprocessingDestinationFolder(PreprocessorContext context) throws IOException - Throws:
IOException
-
makePreprocessorContext
PreprocessorContext makePreprocessorContext(String sourceFoldersInPreprocessorFormat) throws IOException - Throws:
IOException
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException- Specified by:
execute
in interfaceorg.apache.maven.plugin.Mojo
- Throws:
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
-
error
Description copied from interface:PreprocessorLogger
Log an error message- Specified by:
error
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the error log
-
info
Description copied from interface:PreprocessorLogger
Log an information message- Specified by:
info
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the information log
-
warning
Description copied from interface:PreprocessorLogger
Log a warning message- Specified by:
warning
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the warning log
-
debug
Description copied from interface:PreprocessorLogger
Log a debug message- Specified by:
debug
in interfacePreprocessorLogger
- Parameters:
message
- the text to be output into the information log
-