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 Details

    • compileSourceRoots

      @Parameter(alias="compileSourceRoots", defaultValue="${project.compileSourceRoots}", required=true, readonly=true) private List<String> compileSourceRoots
      The Project source roots for non-test mode.
    • testCompileSourceRoots

      @Parameter(alias="testCompileSourceRoots", defaultValue="${project.testCompileSourceRoots}", required=true, readonly=true) private List<String> testCompileSourceRoots
      The Project source roots for test mode.
    • project

      @Parameter(defaultValue="${project}", required=true, readonly=true) private org.apache.maven.project.MavenProject project
      The Maven Project to be preprocessed.
    • source

      @Parameter(alias="source", defaultValue="") private String 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 copyFileAttributes
      Copy file attributes for copied and generated files.
      Since:
      6.1.2
    • destination

      @Parameter(alias="destination", defaultValue="${project.build.directory}/generated-sources/preprocessed") private File destination
      The 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 testDestination
      Destination folder where generated sources will be placed in test-mode.
    • inEncoding

      @Parameter(alias="inEncoding", defaultValue="${project.build.sourceEncoding}") private String inEncoding
      The 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 outEncoding
      The Encoding for preprocessed text output, by default it uses defined in project properties.
    • ignoreMissingSources

      @Parameter(alias="ignoreMissingSources", defaultValue="false") private boolean 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.
      Since:
      6.1.1
    • excluded

      @Parameter(alias="excluded") private String excluded
      List of file extensions to be excluded from the preprocessing process. By default excluded XML files.
    • processing

      @Parameter(alias="processing") private String processing
      List of file extensions to be preprocessed. By default java,txt,htm,html
    • unknownVarAsFalse

      @Parameter(alias="unknownVarAsFalse", defaultValue="false") private boolean unknownVarAsFalse
      Flag to interpret unknown variable as FALSE.
    • disableOut

      @Parameter(alias="disableOut", defaultValue="false") private boolean disableOut
      Make dry run of the preprocessor without any saving of result.
    • verbose

      @Parameter(alias="verbose", defaultValue="false") private boolean verbose
      Turn on the verbose mode for preprocessing process.
    • clear

      @Parameter(alias="clear", defaultValue="false") private boolean clear
      Clear the destination folder before preprocessing (if it exists).
    • careForLastNextLine

      @Parameter(alias="careForLastNextLine", defaultValue="false") private boolean careForLastNextLine
      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..
    • keepSrcRoot

      @Parameter(alias="keepSrcRoot", defaultValue="false") private boolean keepSrcRoot
      Disable overriding of the source root folders for maven project after preprocessing.
    • removeComments

      @Parameter(alias="removeComments", defaultValue="false") private boolean removeComments
      Remove all Java like commentaries from preprocessed sources.
    • globalVars

      @Parameter(alias="globalVars") private Properties globalVars
      List of global preprocessing variables.
    • excludedFolders

      @Parameter(alias="excludedFolders") private String[] excludedFolders
      List of sub-folders in source folders to be excluded from preprocessing, ANT path pattern format allowed.
    • cfgFiles

      @Parameter(alias="cfgFiles") private File[] cfgFiles
      List of external configuration files.
    • keepLines

      @Parameter(alias="keepLines", defaultValue="true") private boolean keepLines
      Disable removing lines from preprocessed files, it allows to keep line numeration similar to original sources.
    • allowWhitespace

      @Parameter(alias="allowWhitespace", defaultValue="false") private boolean allowWhitespace
      Manage mode to allow whitespace between the // and the #.
    • preserveIndent

      @Parameter(alias="preserveIndent", defaultValue="false") private boolean preserveIndent
      Preserve indents in lines marked by '//$' and '//$$' directives. The Directives will be replaced by white spaces chars.
    • useTestSources

      @Parameter(alias="useTestSources", defaultValue="false") private boolean useTestSources
      Allow usage of the preprocessor for test sources (since 5.3.4 version).
    • skip

      @Parameter(alias="skip", property="jcp.preprocess.skip", defaultValue="false") private boolean skip
      Skip preprocessing.
      Since:
      6.1.1
    • compareDestination

      @Parameter(alias="compareDestination", defaultValue="false") private boolean compareDestination
      Flag 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

      public void setExcludedFolders(@MustNotContainNull String... antPatterns)
    • getExcludedFolders

      @MustNotContainNull public String[] 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

      public void setGlobalVars(Properties vars)
    • getGlobalVars

      public Properties getGlobalVars()
    • setCfgFiles

      public void setCfgFiles(@MustNotContainNull File[] files)
    • getCfgFiles

      @MustNotContainNull public File[] getCfgFiles()
    • setCompareDestination

      public void setCompareDestination(boolean flag)
    • isCompareDestination

      public boolean isCompareDestination()
    • setSource

      public void setSource(String source)
    • getSource

      public String getSource()
    • setDestination

      public void setDestination(File destination)
    • getDestination

      public File getDestination()
    • setTestDestination

      public void setTestDestination(File destination)
    • getTestDestination

      public File getTestDestination()
    • setInEncoding

      public void setInEncoding(String value)
    • getInEncoding

      public String getInEncoding()
    • setOutEncoding

      public void setOutEncoding(String value)
    • getOutEncoding

      public String getOutEncoding()
    • setExcluded

      public void setExcluded(String excluded)
    • getExcluded

      public String getExcluded()
    • setUnknownVarAsFalse

      public void setUnknownVarAsFalse(boolean flag)
    • getUnknownVarAsFalse

      public boolean getUnknownVarAsFalse()
    • setProcessing

      public void setProcessing(String processing)
    • getProcessing

      public String 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

      private String 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 interface org.apache.maven.plugin.Mojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException
      org.apache.maven.plugin.MojoFailureException
    • error

      public void error(String message)
      Description copied from interface: PreprocessorLogger
      Log an error message
      Specified by:
      error in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the error log
    • info

      public void info(String message)
      Description copied from interface: PreprocessorLogger
      Log an information message
      Specified by:
      info in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the information log
    • warning

      public void warning(String message)
      Description copied from interface: PreprocessorLogger
      Log a warning message
      Specified by:
      warning in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the warning log
    • debug

      public void debug(String message)
      Description copied from interface: PreprocessorLogger
      Log a debug message
      Specified by:
      debug in interface PreprocessorLogger
      Parameters:
      message - the text to be output into the information log