The maven plugin works very slow for me. In my project the webapp folder has nearly 15000 small files (images, jsp, css, etc). When I assemble it with the maven, it first copies
I suggest that you use the use the war:inplace
goal of maven-war-plugin together with a custom maven-antrun-plugin task.
The war:inplace
will generate the webapp in the WAR source directory. It will create all necessary extra folders under webapp
.
The antrun:run
can be customized to create the war according to your special requirements.
This will potentially improve the performance since most of those resource files you have will still be in the webapp
folder and not being copied.
In the configuration section for the war plugin, use warSourceExcludes to exclude unneeded files and directories. In the example below, the directories components and node_modules will be excluded from the exploded war as well as from the final war. In my case this reduced the build time from 3 minutes to 14 seconds.
<configuration>
<warSourceExcludes>
components/**,
node_modules/**
</warSourceExcludes>
</configuration>
Just want to mention that there is a useCache setting which significantly increases performance (~3 minute instead of 12). However it is acceptable for development only, not for CI-server which should always do clean builds.