jcp:preprocess

Full name:

com.igormaznitsa:jcp:7.2.1:preprocess

Description:

Mojo to preprocess either standard maven project source roots or custom source roots and place prepsocessed result into defined target folder.

Attributes:

  • Requires a Maven project to be executed.
  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: generate-sources.

Optional Parameters

Name Type Since Description
<actionPreprocessorExtension> String 7.1.2 Name of a class to be used as action preprocessor extension. The class must have default constructor. Empty string will be recognized as missing class name.
See also: com.igormaznitsa.jcp.extension.PreprocessorExtension
User Property: jcp.action.preprocessor.extension
Alias: actionPreprocessorExtension
<allowBlocks> boolean 7.2.0. Allows merge preprocessed text lines as single text block for external processing.
Default: false
Alias: allowBlocks
<allowWhitespaces> boolean - Turn on support of white spaces in preprocessor directives between '//' and the '#'.
Default: false
Alias: allowWhitespaces
<baseDir> File 7.0.0 Set base directory which will be used for relative source paths.
Default: ${project.basedir}
Alias: baseDir
<careForLastEol> boolean 7.0.0 Carefully reproduce last EOL in result files.
Default: false
Alias: careForLastEol
<clearTarget> boolean 7.0.0 Clear target folder if it exists.
Default: false
Alias: clearTarget
<configFiles> List<String> 7.0.0 List of external files containing variable definitions.
Alias: configFiles
<dontOverwriteSameContent> boolean 7.0.0 Turn on check of content body compare with existing result file to prevent overwriting, if content is the same then preprocessor will not be writing new result content.
Default: false
Alias: dontOverwriteSameContent
<dryRun> boolean 7.0.0. Dry run, making preprocessing but without output
Default: false
Alias: dryRun
<eol> String 7.0.0 End of line string to be used in reprocessed results. It supports java escaping chars.
Default: ${line.separator}
User Property: jcp.line.separator
Alias: eol
<excludeExtensions> List<String> 7.0.0 List of file extensions to be excluded from preprocessing. By default excluded xml.
Alias: excludeExtensions
<excludeFolders> List<String> 7.0.0 List of patterns of folder paths to be excluded from preprocessing, It uses ANT path pattern format.
Alias: excludeFolders
<extensions> List<String> 7.0.0 List of file extensions to be included into preprocessing. By default java,txt,htm,html
Alias: extensions
<ignoreMissingSources> boolean 6.1.1 Flag to ignore missing source folders, if false then mojo fail for any missing source folder, if true then missing folder will be ignored.
Default: false
Alias: ignoreMissingSources
<keepAttributes> boolean 7.0.0 Keep attributes for preprocessing file and copy them to result one.
Default: false
Alias: keepAttributes
<keepComments> String 7.0.0 Keep comments in result files.
Default: true
Alias: keepComments
<keepLines> boolean - Keep preprocessing directives in result files as commented ones, it is useful to not break line numeration in result files.
Default: true
Alias: keepLines
<preserveIndents> boolean - Preserve indents in lines marked by '//$' and '//$$' directives. Directives will be replaced by white spaces chars.
Default: false
Alias: preserveIndents
<replaceSources> boolean 7.0.0 Replace source root folders in maven project after preprocessing for following processing.
Default: true
Alias: replaceSources
<skip> boolean 6.1.1 Skip preprocessing. Also can be defined by property 'jcp.preprocess.skip'
Default: false
User Property: jcp.preprocess.skip
Alias: skip
<sourceEncoding> String 7.0.0 Encoding for text read operations.
Default: ${project.build.sourceEncoding}
Alias: sourceEncoding
<sources> List<String> 7.0.0 Source root folders for preprocessing, if it is empty then project provided folders will be used.
Alias: sources
<target> File 7.0.0 Target folder to place preprocessing result in regular source processing phase.
Default: ${project.build.directory}${file.separator}generated-sources${file.separator}preprocessed
Alias: target
<targetEncoding> String 7.0.0 Encoding for text write operations.
Default: ${project.build.sourceEncoding}
Alias: targetEncoding
<targetTest> File 7.0.0 Target folder to place preprocessing result in test source processing phase.
Default: ${project.build.directory}${file.separator}generated-test-sources${file.separator}preprocessed
Alias: targetTest
<unknownVarAsFalse> boolean - Recognize a unknown variable as containing boolean false flag.
Default: false
Alias: unknownVarAsFalse
<useTestSources> boolean 5.3.4 Turn on test sources root use.
Default: false
Alias: useTestSources
<vars> Map<String,String> 7.0.0 List of variables to be registered in preprocessor as global ones.
Alias: vars
<verbose> boolean - Verbose mode.
Default: false
Alias: verbose

Parameter Details

<actionPreprocessorExtension>

Name of a class to be used as action preprocessor extension. The class must have default constructor. Empty string will be recognized as missing class name.
See also: com.igormaznitsa.jcp.extension.PreprocessorExtension
  • Type: java.lang.String
  • Since: 7.1.2
  • Required: No
  • User Property: jcp.action.preprocessor.extension
  • Alias: actionPreprocessorExtension

<allowBlocks>

Allows merge preprocessed text lines as single text block for external processing.
  • Type: boolean
  • Since: 7.2.0.
  • Required: No
  • Default: false
  • Alias: allowBlocks

<allowWhitespaces>

Turn on support of white spaces in preprocessor directives between '//' and the '#'.
  • Type: boolean
  • Required: No
  • Default: false
  • Alias: allowWhitespaces

<baseDir>

Set base directory which will be used for relative source paths.
  • Type: java.io.File
  • Since: 7.0.0
  • Required: No
  • Default: ${project.basedir}
  • Alias: baseDir

<careForLastEol>

Carefully reproduce last EOL in result files.
  • Type: boolean
  • Since: 7.0.0
  • Required: No
  • Default: false
  • Alias: careForLastEol

<clearTarget>

Clear target folder if it exists.
  • Type: boolean
  • Since: 7.0.0
  • Required: No
  • Default: false
  • Alias: clearTarget

<configFiles>

List of external files containing variable definitions.
  • Type: java.util.List<java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: configFiles

<dontOverwriteSameContent>

Turn on check of content body compare with existing result file to prevent overwriting, if content is the same then preprocessor will not be writing new result content.
  • Type: boolean
  • Since: 7.0.0
  • Required: No
  • Default: false
  • Alias: dontOverwriteSameContent

<dryRun>

Dry run, making preprocessing but without output
  • Type: boolean
  • Since: 7.0.0.
  • Required: No
  • Default: false
  • Alias: dryRun

<eol>

End of line string to be used in reprocessed results. It supports java escaping chars.
  • Type: java.lang.String
  • Since: 7.0.0
  • Required: No
  • User Property: jcp.line.separator
  • Default: ${line.separator}
  • Alias: eol

<excludeExtensions>

List of file extensions to be excluded from preprocessing. By default excluded xml.
  • Type: java.util.List<java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: excludeExtensions

<excludeFolders>

List of patterns of folder paths to be excluded from preprocessing, It uses ANT path pattern format.
  • Type: java.util.List<java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: excludeFolders

<extensions>

List of file extensions to be included into preprocessing. By default java,txt,htm,html
  • Type: java.util.List<java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: extensions

<ignoreMissingSources>

Flag to ignore missing source folders, if false then mojo fail for any missing source folder, if true then missing folder will be ignored.
  • Type: boolean
  • Since: 6.1.1
  • Required: No
  • Default: false
  • Alias: ignoreMissingSources

<keepAttributes>

Keep attributes for preprocessing file and copy them to result one.
  • Type: boolean
  • Since: 7.0.0
  • Required: No
  • Default: false
  • Alias: keepAttributes

<keepComments>

Keep comments in result files.
  • Type: java.lang.String
  • Since: 7.0.0
  • Required: No
  • Default: true
  • Alias: keepComments

<keepLines>

Keep preprocessing directives in result files as commented ones, it is useful to not break line numeration in result files.
  • Type: boolean
  • Required: No
  • Default: true
  • Alias: keepLines

<preserveIndents>

Preserve indents in lines marked by '//$' and '//$$' directives. Directives will be replaced by white spaces chars.
  • Type: boolean
  • Required: No
  • Default: false
  • Alias: preserveIndents

<replaceSources>

Replace source root folders in maven project after preprocessing for following processing.
  • Type: boolean
  • Since: 7.0.0
  • Required: No
  • Default: true
  • Alias: replaceSources

<skip>

Skip preprocessing. Also can be defined by property 'jcp.preprocess.skip'
  • Type: boolean
  • Since: 6.1.1
  • Required: No
  • User Property: jcp.preprocess.skip
  • Default: false
  • Alias: skip

<sourceEncoding>

Encoding for text read operations.
  • Type: java.lang.String
  • Since: 7.0.0
  • Required: No
  • Default: ${project.build.sourceEncoding}
  • Alias: sourceEncoding

<sources>

Source root folders for preprocessing, if it is empty then project provided folders will be used.
  • Type: java.util.List<java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: sources

<target>

Target folder to place preprocessing result in regular source processing phase.
  • Type: java.io.File
  • Since: 7.0.0
  • Required: No
  • Default: ${project.build.directory}${file.separator}generated-sources${file.separator}preprocessed
  • Alias: target

<targetEncoding>

Encoding for text write operations.
  • Type: java.lang.String
  • Since: 7.0.0
  • Required: No
  • Default: ${project.build.sourceEncoding}
  • Alias: targetEncoding

<targetTest>

Target folder to place preprocessing result in test source processing phase.
  • Type: java.io.File
  • Since: 7.0.0
  • Required: No
  • Default: ${project.build.directory}${file.separator}generated-test-sources${file.separator}preprocessed
  • Alias: targetTest

<unknownVarAsFalse>

Recognize a unknown variable as containing boolean false flag.
  • Type: boolean
  • Required: No
  • Default: false
  • Alias: unknownVarAsFalse

<useTestSources>

Turn on test sources root use.
  • Type: boolean
  • Since: 5.3.4
  • Required: No
  • Default: false
  • Alias: useTestSources

<vars>

List of variables to be registered in preprocessor as global ones.
  • Type: java.util.Map<java.lang.String, java.lang.String>
  • Since: 7.0.0
  • Required: No
  • Alias: vars

<verbose>

Verbose mode.
  • Type: boolean
  • Required: No
  • Default: false
  • Alias: verbose