You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Maarten Volders <ma...@gmail.com> on 2007/06/07 09:35:06 UTC

Project structure with division between applications, modules, containers... (Feedback required)

All,

Currently my project structure looks something like

project (parent pom)
  |---- portal
  |---- core
  |---- integrationserver

I want to switch to the following structure

project
  |---- applications
  |    |---- portal
  |    |---- integrationserver
  |    |---- database
  |
  |---- modules
  |    |---- core
  |
  |---- containers
  |    |---- tomcat
  |    |---- activemq
  |    |---- mssql
...

The reasons for so doing are the following:
- Now the database schemas / triggers / procedures are all being kept in the
core module. But these files are only maintained by a dba, who is doesn't
need to know anything else about the top layers of the project. If you look
at it the database is an application on its own, so perhaps it should be
treated like that? That makes that we are build 3 apps a portal, an
integration server and a database. This way the dba can checkout his own
little module to work on.
- the app is being build in a multi environment, now configuration files for
tomcat, logging, queues... are all being kept in the module to which they
kinda belong. When working this way, it feels kinda awkward to me because we
are  containing a lot of  configuration files in the application source code
project it self. It is getting a real search quest finding anything in these
folders. So I want to move them all to separate container projects so that
it is clear where to find them. These containers would have a dir structure
like src/resources/${env} where ${dev} is replaced by dev, shared, test,
production...

Now my main question is
- does anyone else have some kind of structure which has a nice division
between app, containers... that he wants to share with us?
- is this feasible with Maven, anyone noticing something that will get me in
trouble?
- One thing I'm completely unsure of is what about those pom files, does
every module above (project, app, portal, container, tomcat...) has its own
pom or doesn't that make sense, because if I do so what about the packing
type of for example container tomcat which will contain tomcat config files,
should I just sets that to JAR?

Grtz