The Velocity Tools Maven plugin contains mojos to work together with Velocity Tools.
JSP tag libraries can be wrapped into Velocity directives to use them into Velocity templates.
Create a new project and configure the plugin.
<build> <plugins> <plugin> <groupId>org.apache.velocity</groupId> <artifactId>maven-velocity-tools-plugin</artifactId> <version>2.1.0-SNAPSHOT</version> <configuration> <packageName>org.apache.velocity.tools.examples.displaytag</packageName> <prefix>display</prefix> <tld>META-INF/displaytag.tld</tld> </configuration> <dependencies> <dependency> <groupId>displaytag</groupId> <artifactId>displaytag</artifactId> <version>1.2</version> </dependency> </dependencies> <executions> <execution> <id>directive-generation</id> <goals> <goal>taglib2directive</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
In this case we are wrapping DisplayTag. Notice the fact that DisplayTag is configured as a dependency of the plugin itself, because it uses it to reflect some properties from the original tag library.
Add a dependency to the taglib itself:
<dependencies> <dependency> <groupId>displaytag</groupId> <artifactId>displaytag</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools-view-jsp</artifactId> <version>2.1.0-SNAPSHOT</version> </dependency> </dependencies>
To use it, in your velocity.properties file, add the list of generated directives this way:
userdirective=org.apache.velocity.tools.examples.displaytag.CaptionTagDirective,\ org.apache.velocity.tools.examples.displaytag.ColumnTagDirective,\ org.apache.velocity.tools.examples.displaytag.SetPropertyTagDirective,\ org.apache.velocity.tools.examples.displaytag.TableFooterTagDirective,\ org.apache.velocity.tools.examples.displaytag.TableTagDirective