In the pom.xml file for the parent module, you can define any number of reactor modules. Out of the box, you'll see something like this:
<modules> <module>core</module> <module>ui.apps</module> <module>ui.content</module> </modules>
You can add additional modules to your project, and set them up there. Then in the pom.xml files for those reactor modules, ensure you're declaring them as children of the parent. Out of the box, you'll see something like this in the core reactor pom.xml:
<parent> <groupId>org.company</groupId> <artifactId>parentartifactid</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent>
There's also nothing saying that all your code has to be in one Multi module project. For example, we have a "basepackage" with base templates, common components (like columns, text and image, etc), and other stuff that would be used across the whole site. And then another MM project that just deals with a news publication system. There are some references to components in the basepackage from the new project, but they're mostly decoupled.