Pure JavaScript implementation for creating a WAR of your project for deployment on a JVM servlet container.
This plugin requires Grunt ~0.4.2
npm install grunt-war --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-war');
In your project's Gruntfile, add a section named war
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
/*
* Build a WAR (web archive) without Maven or the JVM installed.
*/
war: {
target: {
options: {
war_dist_folder: '<%= build_dir %>',
war_verbose: true,
war_name: 'webmagic',
war_extras: [{filename: 'grunt-war-credits.txt', data: 'Thank you @wibobm!\n'}],
webxml_welcome: 'index.html',
webxml_display_name: 'Web Magic',
webxml_mime_mapping: [
{ extension: 'woff', mime_type: 'application/font-woff' }
]
},
files: [
{
expand: true,
src: ['<%= build_dir %>/**']
}
]
}
}
});
Type: 'string'
Default value: 'test'
This is the folder that the war will be placed. This folder has to exist before this task is run.
Type: 'string'
Default value: 'grunt'
Type: 'Array'
Default value: []
A list of files and folders entries that are to be included in the war. Each object in the array has
keys filename
and data
example: { filename: 'name_of_file.ext', data: file_data }
. If the key data
is omitted then an empty folder called filename
will be added to the WAR. The value of key data
can
either be a string
or a function that returns a string
.
Type: 'boolean'
Default value: false
Logs progress to the grunt console log.
Type: 'string'
Default value: 'DEFLATE'
Compress ('DEFLATE') or leave uncompressed ('NONE').
Type: 'string'
Default value: 'index.html'
Type: 'string'
Default value: 'Grunt WAR'
Type: 'Array'
Default value: []
An array of objects with properties extension
and mime_type
.
Type: 'Array'
Default value: []
An array of objects that are either 'string'
or 'function'
that return 'string'
. These entries are
included directly into the generated web.xml.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
- Fixed the inclusion of source files defined in previous WAR task configurations for all future WAR tasks. Example: a war.foo task includes dist/foo in foo.war, and a war.bar task includes dist/bar in bar.war. bar.war would include both dist/bar and the previously added dist/foo. (jbenner)
- Fixed grunt-war encoding text incorrectly. Example: 'Količina' and 'Osveži' would get encoded as 'KoliÄ�ina' and 'Osveži'. (sobrle)
- Updated peerDependencies to include node-zip. (@augier)
- Now deletes
options.war_name
fromoptions.war_dist_folder
before trying to generate a newwar
file.
- Fixed file names being trimmed when included in war. (@augier)
- Fixed deployment issue resulting from using wrong option when generating webapp tag.
- Renamed
options.war_filename
tooptions.war_name
. - Added
options.war_extras
- Added
options.webxml_webapp_extras
.