I have a Web application in maven that follows this structure:
src
`-- main
|-- java
|-- resources
`-- webapp
Is is better to put it in the main folder and then the maven plug in will try to move it or I should put it inside the webapp folder and why?
I am seeing quite a variation of answers to this question. One set of threads (like some people in this thread) seem to think that Maven apps should place css/images/js files into the src\main\webapp folder - similar to the traditional J2EE pattern. Others feel that the resources (or another similar peer) folder outside of webapps should be used instead:
What are the conventional locations for for JSPs, JavaScript, CSS, Images in Maven web projects?
I have yet to form an opinion, but it would seem to make sense to separate these client side types of files from the server side - if only because in high performance focused production situations, the static client side files such as these are typically separated out and placed into a cacheable front end web server for faster access anyway, so keeping them in their own separate resources folder would seem to make this job easier.
If you don't need to filter CSS and JS files, I would simply put them in
src/main/webapp
(if you put them insrc/main/resources
, they will end up intarget/classes
and inWEB-INF/classes
in the WAR which is very unlikely what you want). If you need to filter them, additional resources can be included in the WAR using thewebResources
parameter. Have a look at Adding and Filtering External Web Resources for more details.I think they should be under
src\main\webapp
. The main rationale for saying this is that this is the standard suggested by Maven, and the Maven philosophy is that all projects should follow the same structure as much as possible.Taken from Introduction to the Standard Directory Layout:
"If there are other contributing sources to the artifact build, they would be under other subdirectories: for example
src/main/antlr
would contain Antlr grammar definition files."So I think
src/main/javascript
andsrc/main/css
is the right place...What do you think?