LinkedIn Dust.js is a powerful, high-performance, and extensible front-end templating engine. Here is an excellent article comparing Dust.js with other template engines.
After learning Gradle, I have been using it almost exclusively for my JVM projects. While Dust.js plugins have been written for Play Framework and JSP, but it seems that nobody had written one for Gradle to compile Dust.js templates at build time.
As a result, I wrote my own, which is available on
GitHub. The plugin uses Mozilla Rhino to invoke
the dustc
compiler. You do not need to have Node.js or NPM installed to use
the plugin.
Using the plugin is easy. First, add a buildscript dependency to pull the
gradle-dustjs-plugin
artifact:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.linkedin:gradle-dustjs-plugin:1.0.0'
}
}
Then, apply the plugin:
apply plugin: 'dustjs'
Finally, configure the plugin to specify your input files:
dustjs {
source = fileTree('src/main/tl') {
include 'template.tl'
}
dest = 'src/main/webapp/assets/js'
}
At build time, the dustjs
task will compile your templates to JavaScript
files. The basename of the template file is used as the current name. For
example, compiling the template template.tl
is equivalent to running the
following dustc
command:
dustc --name=template source/template.tl dest/template.js
Please check it out and feel free to open issues and pull requests.