Coffeescript Maven Plugin
Changes from 1.1.x versions:
CoffeeScript files are joined together by default by JoinSets.
JoinSets now contain Maven FileSets instead of listing
Requires Java5 or above
Creates a minified version using the Closure Compiler
USAGE:
Add the main plugin elements: groupId, artifactId, and version
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>coffee-maven-plugin</artifactId>
<version>1.4.0</version>
</plugin>
Add the execution goal
<executions>
<execution>
<id>coffee</id>
<goals>
<goal>coffee</goal>
</goals>
</execution>
</executions>
Configure the destination of the resultant js files
<coffeeOutputDirectory>${project.build.directory}/coffee</coffeeOutputDirectory>
Specify bare (see coffeescript compiler documentation)
<bare>false</bare>
It can be tough to debug compilation errors with the files joined together. If you would like to compile the Files individually true
Finally, add JoinSets. The id of the joinSet will be the name of the resultant javascript file.
<coffeeJoinSets>
<joinSet>
<id>main</id>
<fileSet>
</fileSet>
</joinSet>
</coffeeJoinSets>
Optionally, specify a minified file location. It defaults to:
${project.build.directory}/coffee/${project.artifactId}-${project.version}.min.js
Finally, you can specify a directory of files to minify into one file,
or a fileset of files to minify into one file
</setOfFilesToMinify>
An Example Build Section:
<build>
<plugins>
<plugin>
<groupId>com.theoryinpractise</groupId>
<artifactId>coffee-maven-plugin</artifactId>
<version>1.3.1</version>
<configuration>
<minifiedFile>${project.build.directory}/coffee/${project.artifactId}-${project.version}.min.js</minifiedFile>
<setOfFilesToMinify>
<directory>${project.build.directory}/coffee</directory>
<includes>
<include>*.js</include>
</includes>
<excludes>
<exclude>alternate.js</exclude>
</excludes>
</setOfFilesToMinify>
<coffeeOutputDirectory>${project.build.directory}/coffee</coffeeOutputDirectory>
<compileIndividualFiles>true</compileIndividualFiles>
<coffeeJoinSets>
<joinSet>
<id>main</id>
<fileSet>
<directory>${basedir}/src/main/coffee</directory>
<includes>
<include>**/*.coffee</include>
</includes>
<excludes>
<exclude>**/jointest3.*</exclude>
</excludes>
</fileSet>
</joinSet>
<joinSet>
<id>alternate</id>
<fileSet>
<directory>${basedir}/src/main/coffee</directory>
<includes>
<include>**/jointest3.*</include>
</includes>
</fileSet>
</joinSet>
</coffeeJoinSets>
</configuration>
<executions>
<execution>
<id>coffee</id>
<goals>
<goal>coffee</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>