They are basically the same thing, but with one difference.
When you create a module, you must specify a parent project.
When you specify the parent project, it adds a <modules>
section to the parent projects pom.xml
.
That section basically says to the parent project:
run every command I get against all of my modules first
So for example, if you run, mvn package
on the top-level project, it will run mvn package
against all its module projects first.
Hope that helps.
Hint:
Make sure all modules have high cohesion and related to each other, otherwise you will have a huge messy project without applying SRP (Single Responsibility Principle)