modello:velocity

Full name:

org.codehaus.modello:modello-maven-plugin:2.3.0:velocity

Description:

Creates files from the model using Velocity templates.

This mojo can be given a list of templates and a list of parameters. Each template from the templates property will be run with the following context:

  • version: the version of the model to generate
  • model: the modello model
  • Helper: a org.codehaus.modello.plugin.velocity.Helper object instance
  • any additional parameters specified using the params property
The output file is controlled from within the template using the #MODELLO-VELOCITY#SAVE-OUTPUT-TO VTL directive. This allows a single template to generate multiple files. For example, the following directive will redirect further output from the template to a file named org/apache/maven/api/model/Plugin.java if the variable package is set to org.apache.maven.api.model and the variable className is set to Plugin.

#MODELLO-VELOCITY#SAVE-OUTPUT-TO ${package.replace('.','/')/${className}.java}

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.

Required Parameters

Name Type Since Description
<basedir> String - Base directory of the project, from where the Modello models are loaded.
Default: ${basedir}
<models> String[] - List of relative paths to mdo files containing the models.
<packageWithVersion> boolean - True if the generated package names should include the version.
Default: false
User Property: packageWithVersion
<version> String - The version of the model we will be working on.
User Property: version

Optional Parameters

Name Type Since Description
<outputDirectory> File - The output directory of the generated files.
Default: ${project.build.directory}/generated-sources/modello
<packagedVersions> List<String> - Additional historical versions to generate, each being packaged with the version regardless of the packageWithVersion setting.
<params> List<String> - A list of parameters, using the syntax key=value. Those parameters will be made accessible to the templates.
<templates> List<String> - A list of template paths to be run against the loaded Modello model. Those are .vm files as described in the Velocity Users Guide relative to velocityBasedir.
<velocityBasedir> File - The directory where Velocity templates are looked for.
Default: ${project.basedir}

Parameter Details

<basedir>

Base directory of the project, from where the Modello models are loaded.
  • Type: java.lang.String
  • Required: report.plugin.goal.yes
  • Default: ${basedir}

<models>

List of relative paths to mdo files containing the models.
  • Type: java.lang.String[]
  • Required: report.plugin.goal.yes

<outputDirectory>

The output directory of the generated files.
  • Type: java.io.File
  • Required: report.plugin.goal.no
  • Default: ${project.build.directory}/generated-sources/modello

<packagedVersions>

Additional historical versions to generate, each being packaged with the version regardless of the packageWithVersion setting.
  • Type: java.util.List<java.lang.String>
  • Required: report.plugin.goal.no

<packageWithVersion>

True if the generated package names should include the version.
  • Type: boolean
  • Required: report.plugin.goal.yes
  • User Property: packageWithVersion
  • Default: false

<params>

A list of parameters, using the syntax key=value. Those parameters will be made accessible to the templates.
  • Type: java.util.List<java.lang.String>
  • Required: report.plugin.goal.no

<templates>

A list of template paths to be run against the loaded Modello model. Those are .vm files as described in the Velocity Users Guide relative to velocityBasedir.
  • Type: java.util.List<java.lang.String>
  • Required: report.plugin.goal.no

<velocityBasedir>

The directory where Velocity templates are looked for.
  • Type: java.io.File
  • Required: report.plugin.goal.no
  • Default: ${project.basedir}

<version>

The version of the model we will be working on.
  • Type: java.lang.String
  • Required: report.plugin.goal.yes
  • User Property: version