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 booleanManage mode to allow whitespace between the // and the #.private booleanBe 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 booleanClear the destination folder before preprocessing (if it exists).private booleanFlag 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 booleanCopy file attributes for copied and generated files.private FileThe Destination folder where generated sources will be placed in non-test mode.private booleanMake dry run of the preprocessor without any saving of result.private StringList 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 PropertiesList of global preprocessing variables.private booleanFlag to ignore missing source folders, if false then mojo fail for any missing source folder, if true then missing folder will be ignored.private StringThe Input text encoding to be used for preprocessing, by default it uses defined in project properties.private booleanDisable removing lines from preprocessed files, it allows to keep line numeration similar to original sources.private booleanDisable overriding of the source root folders for maven project after preprocessing.private StringThe Encoding for preprocessed text output, by default it uses defined in project properties.private booleanPreserve indents in lines marked by '//$' and '//$$' directives.private StringList of file extensions to be preprocessed.private org.apache.maven.project.MavenProjectThe Maven Project to be preprocessed.private booleanRemove all Java like commentaries from preprocessed sources.private booleanSkip preprocessing.private StringThe 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 FileDestination folder where generated sources will be placed in test-mode.private booleanFlag to interpret unknown variable as FALSE.private booleanAllow usage of the preprocessor for test sources (since 5.3.4 version).private booleanTurn on the verbose mode for preprocessing process.Fields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidLog a debug messagevoidLog an error messagevoidexecute()booleanbooleanFile[]booleangetClear()booleanbooleanString[]booleanbooleanbooleanbooleanbooleanbooleanbooleanvoidLog an information messagebooleanbooleanbooleanisSkip()(package private) PreprocessorContextmakePreprocessorContext(String sourceFoldersInPreprocessorFormat) private Stringprivate voidvoidsetAllowWhitespace(boolean flag) voidsetCareForLastNextLine(boolean flag) voidsetCfgFiles(File[] files) voidsetClear(boolean flag) voidsetCompareDestination(boolean flag) voidsetCopyFileAttributes(boolean flag) voidsetDestination(File destination) voidsetDisableOut(boolean value) voidsetExcluded(String excluded) voidsetExcludedFolders(String... antPatterns) voidsetGlobalVars(Properties vars) voidsetIgnoreMissingSources(boolean flag) voidsetInEncoding(String value) voidsetKeepLines(boolean keepLines) voidsetKeepSrcRoot(boolean flag) voidsetOutEncoding(String value) voidsetPreserveIndent(boolean flag) voidsetProcessing(String processing) voidsetRemoveComments(boolean value) voidsetSkip(boolean flag) voidvoidsetTestDestination(File destination) voidsetUnknownVarAsFalse(boolean flag) voidsetUseTestSources(boolean flag) voidsetVerbose(boolean verbose) voidLog 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:
executein interfaceorg.apache.maven.plugin.Mojo- Throws:
org.apache.maven.plugin.MojoExecutionExceptionorg.apache.maven.plugin.MojoFailureException
-
error
Description copied from interface:PreprocessorLoggerLog an error message- Specified by:
errorin interfacePreprocessorLogger- Parameters:
message- the text to be output into the error log
-
info
Description copied from interface:PreprocessorLoggerLog an information message- Specified by:
infoin interfacePreprocessorLogger- Parameters:
message- the text to be output into the information log
-
warning
Description copied from interface:PreprocessorLoggerLog a warning message- Specified by:
warningin interfacePreprocessorLogger- Parameters:
message- the text to be output into the warning log
-
debug
Description copied from interface:PreprocessorLoggerLog a debug message- Specified by:
debugin interfacePreprocessorLogger- Parameters:
message- the text to be output into the information log
-