Physical software project structure

Higher level folder hierarchy

Golden rule: Those artifact which’s lifecycle is the same must be stored in the same place.

With other words: all source code, documentation, helper must be stored in the version management system in the same place, under a common folder structure. The lifecycle of that folder structure must be the same. You have to avoid keeping a java folder structure independently from the database and test scripts. In any other case you have double release related maintenance (branching, merging)

Maven folder structure

Setting up multiproject maven environment is not a trivial task.

You must understand the difference between sub-modules, parent-child projects.


Organizing maven modules are not the question of numbers. The key is the well organized project structure.

A (probably) good example:

Of course you could have more or less. Depending on the project.


  1. so called “common” project which contains 2/3 of the total source code of the project
  2. module represented in subproject, but the project is not standalone. Have several seriouse dependency on such a projects which are is logically independent from that.
  3. subproject with only a very few number of classes. Especially if they are not independent components.

Technology stack
Jul 01, 2013
comments powered by Disqus