Page contents
Description
If you need the FMPP Ant task in a project xml (build.xml
), use the taskdef
core task:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <taskdef name="fmpp" classname="fmpp.tools.AntTask" /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Then you can use the <fmpp ...>
task further down. You may remember the 4th step of Quick Tour. This is an Ant equivalent:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <project name="FMPP test" default="build">
<taskdef name="fmpp" classname="fmpp.tools.AntTask" />
<target name="build">
<fmpp
sourceRoot="src" outputRoot="out"
data="tdd(data/style.tdd), birds:csv(data/birds.csv)"
/>
</target>
</project> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Almost all parameters of the Ant task correspond to the FMPP settings. If the setting value is of scalar type (as string, boolean, number) then just enter the value simply with Ant-ish syntax, not with TDD syntax. If the setting value is of more tricky type, as hash or sequence, then use TDD syntax for it. For hash settings the value is hash mode TDD, and for sequence setting it is sequence mode TDD, so the brackets should be omitted, as with data
above.
The configuration base for the setting values given with Ant parameters is the Ant project base directory. That is, if you enter sourceRoot="src"
, then src
is interpreted relatively to the project base directory.
There is no parameter that directly corresponds to the sources
setting. The sources are chosen with nested <fileset>
-style parameters and nested elements (as include
and exclude
). However, if you use the outputFile
setting, you can't use <fileset>
-style stuff, and sources
will be specified with the sourceFile
parameter.
Alternatively, the data
, localData
, borders
, modes
, turns
, xmlRenderings
and freemarkerLinks
settings can be specified with nested elements instead of parameters. For example, this is equivalent with the above example:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <project name="FMPP test" default="build">
<taskdef name="fmpp" classname="fmpp.tools.AntTask" />
<target name="build">
<fmpp sourceRoot="src" outputRoot="out">
<data>
tdd(data/style.tdd)
birds: csv(data/birds.csv)
</data>
</fmpp>
</target>
</project> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
This can be useful, if the setting value is long. The content of the element can be a CDATA section, which is useful if the setting value contains HTML or XML fragments. Unlike with attributes, Ant property interpolations (${foo}
) in the text are not expanded, unless you force that with the expandProperties
attribute of the element (<data expandProperties="yes">...
).
About the support and interpretation of FMPP settings:
To access the Ant properties and other Ant specific data in the templates, you can use data loaders such as antProperty()
, antProperties()
, antProject()
and antTask()
. Read the chapter about data loaders for more details.
Parameters
The FMPP task accepts the following parameters:
- All FMPP settings except
sources
, ignoreCvsFiles
, ignoreSvnFiles
, ignoreTemporaryFiles
, echoFormat
, snip
and columns
. If the setting value is of scalar type (as string, boolean, number) then just enter the value simply with Ant-ish syntax, not with TDD syntax. If the setting value is of more tricky type, as hash or sequence, then use TDD syntax for it. For hash settings the value is hash mode TDD, and for sequence setting it is sequence mode TDD, so the brackets should be omitted. The configuration base for the setting values is the Ant project base directory.
- Configuration file handling:
configuration
: Loads a configuration file. The setting values given with the parameters has higher precedence.
configurationBase
: Emulates that configurationBase
meta setting is present in configuration file with the given value.
inheritConfiguration
: Emulates that inheritConfiguration
meta setting is present in configuration file with the given value.
- Ant
<fileset>
-style attributes (see the Ant documentation for more details). Used for specifing the value of the sources
setting:
dir
: The directory that the patterns are relative to. If this attribute is omitted, then the FMPP source root will be used as the base. Note that regardless of the value of this attribute, all source files must be inside the source root.
casesensitive
: Sets case sensitivity of the file names. (Same as the FMPP setting)
defaultexcludes
: Indicates whether default excludes should be used or not ("yes"
or "no"
); default excludes are used when omitted.
excludes
: comma- or space-separated list of patterns of files that must be excluded; no files (except default excludes) are excluded when omitted.
excludesfile
: the name of a file; each line of this file is taken to be an exclude pattern.
followsymlinks
: Shall symbolic links be followed? Defaults to true.
includes
: Comma- or space-separated list of patterns of files that must be included; all files are included when omitted. Note that be default all files of the source root directory are included.
includesfile
: The name of a file; each line of this file is taken to be an include pattern.
sourceFile
: It can be used only if the outputFile
setting is specified. It specifies the value of the sources
setting, as a simple string (not a comma separated list) that specifies the path of a single file. <fileset>
-style attributes/elements will be ignored.
antTaskFailOnError
: Specifies if the Ant task should fail if there were errors during the execution of the processing session. Defaults to true
. It has nothing to do with the stopOnError
setting. If this parameter is true
, the Ant task will fail if there were any failed file processing during the processing session, even if it was skipped because stopOnError
was true
(so the session wasn't aborted). If this parameter is false
, then the Ant task will be successful regardless of the failed file processings or other errors during the processing session, even if the processing session was aborted. But, it never suppresses errors occurred during the initialization of the FMPP engine (i.e. errors occurred before the processing session could be stated).
Either the configuration
parameter, or sourceRoot
+outputRoot
parameters, or sourceFile
+outputFile
parameters are required. All other parameters are optional. When you use configuration
, any Ant task parameters can become optional, when the value of the coressponding settings are given in the configuration file.
Nested elements
The FMPP task accepts the following nested elements:
- Elements for attribute substitution: Using these elements is the same as if you were use the attributes (parameters) with the same name, and with the same value as the nested text (or CDATA section) of the elements. Ant property values (
${foo}
) are not expanded by default, but you can override this with a expandProperties="yes"
attribute. Note that you etiher give a certain setting with attribute, or with element, but not both.
data
localData
borders
modes
turns
xmlRenderings
freemarkerLinks
<fileset>
-style elements (see the Ant documentation for more details):
patternset
include
: Note that be default all files inside the source root directory are included.
exclude
includesfile
excludesfile
Examples
Run processing session with the settings stored in <projectBaseDir>/config.fmpp
(or fmpp.cfg
):
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp configuration="." /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
As the previous, but override outputEncoding
:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp configuration="." outputEncoding="UTF-8" /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Processes all files in src/www
and stores the output in build/www
:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp sourceRoot="src/www" outputRoot="build/www" /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Same as the previous, but processes files with extension ftl
only:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp
sourceRoot="src/www" outputRoot="build/www"
includes="**/*.ftl"
/> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Same as the previous:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp sourceRoot="src/www" outputRoot="build/www">
<include name="**/*.ftl" />
</fmpp> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Run processing session with the settings stored in <projectBaseDir>/src/wwwconfig.fmpp
, but process files with extension ftl
only:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp configuration="src/wwwconfig.fmpp" includes="**/*.ftl" /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Processes a single file:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp sourceFile="src/test.txt" outputFile="build/test.txt" /> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Exposes Ant properties foo
, bar
and baaz
for the templates:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp sourceRoot="src/www" outputRoot="build/www"
data="antProperties(foo, bar, baaz)"
/> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
Just to show something more complex...:
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
![](img/none.gif) | <fmpp sourceRoot="src/www" outputRoot="build/www"
replaceExtension="ftl, html"
modes="copy(**/*.html, **/*.htm)"
>
<borders><![CDATA[
border('<#escape x as x?html>', '</#escape>', **/*.ftl)
]]></borders>
<data>
bgColor: white
fgColor: black
antProps: antProperties()
</data>
</fmpp> |
| ![](img/none.gif) |
![](img/none.gif) | ![](img/none.gif) | ![](img/none.gif) |
|
Generated on Dec 16, 2007 10:12 PM GMT
For FMPP version 0.9.13
|
|
![Powered by FreeMarker](img/poweredby_sq_simple.png) |