maven-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michal Maczka <>
Subject Re: Maven Recommended Directory Structure
Date Tue, 02 Aug 2005 03:45:35 GMT

Paul Faulstich wrote:

>I've been browsing through the archives looking for some documentation
>regarding the thought process that went into the Maven directory
>structure conventions, but haven't found much yet.
>We are restructuring one of our projects, and it would be helpful to be
>able to explain to others (and to understand myself) why Maven's
>recommendation differs from Sun's
>In particular:
> - directory names (target vs dist, resources vs conf)

Here is my interpretation of this structure (I participated in original 
discussion which lead to this "standard"):

target  = build in Sun's conventions
maven has no dists folder as projects communicate via the local 
repository (or remote repositories)  so there is no need to have one 
dedicated folder where build artifacts are stored.

resource folder is for resources which will be packed inside jars - not 
for application configuration files.

you can still have


> - the purpose of the /main folder under src (src/main/java vs src/java)

the idea behind it was simple - the default configurations of plugins 
should work in every case - so you should not be required to change any 
configuration file
even if you are doing something less frequent.

Note that:

a) there are almost always two source trees in maven: test and main  
(that  naturally corresponds to src/main and src/test).

b) in each of those trees there can coexist  the code written in 
different programming languages - e.g:
src/main/c (for jni)

c) you can have "conf" folder for tests (e.g.  src/test/conf).

d) test folder is simply mirroring the structure of main. imo it makes 
more sense to have:


then say


> - placing tests under src (src/test vs test/testname/src)
maven just supports one test and main source tree - so the convention test/testname/src is
not compatible with this rule.

note that you can still have

and so on.

say that you are going to write your unit tests only in groovy - so you 
will put them to src/test/groovy not to src/test. If the test are 
written in Java (which is obviously the most common case) they can still 
consequently go to src/test/java so if  one day if you will decide that 
you want to add a test case written in some scripting language - you can 
easly find a place for it.

>If this is a dead horse, then please just point me to the discussions
>that already exist.


INTERIA.PL z najlepsza wyszukiwarka... >>>

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message