Using Maven Reactor for Selective Multi‑Module Builds
This article explains how Maven’s reactor determines build order in a parent‑child multi‑module project and demonstrates how to use command‑line options such as -pl, -rf, -am, and -amd to build only required modules or their dependents, greatly speeding up the build process.
The example Maven project uses a parent‑child (aggregator) structure where the top‑level b2b module contains two sub‑modules b2b_account and b2b_order, each of which further contains jar‑type sub‑modules.
Reactor
Running mvn clean install in the b2b/pom.xml directory triggers Maven’s reactor, which analyses inter‑module dependencies and computes a build order for all seven artifacts (including the parent pom). The reactor ensures that modules like b2b-account-api, which are depended on by others, are built first.
Selective Build
When only certain modules need to be rebuilt, Maven provides several options:
-pl <arg>
Alias for --projects <arg>; specifies a comma‑separated list of modules to build. Modules can be referenced by relative path or by groupId:artifactId.
mvn clean install -pl b2b-account
mvn clean install -pl b2b-account/b2b-account-api
mvn clean install -pl b2b-account/b2b-account-api,b2b-account/b2b-account-service
mvn clean install -pl :b2b-account-api,b2b-order/b2b-order-api
mvn clean install -pl :b2b-account-api,:b2b-order-service-rf <arg>
Alias for --resume-from <arg>; starts the reactor from the specified module, skipping earlier modules.
mvn clean install
mvn clean install -rf b2b-order/b2b-order-service-amd
Alias for --also-make-dependents; builds the specified modules and any modules that depend on them.
mvn clean install -pl b2b-account/b2b-account-api -amd-am
Alias for --also-make; builds the specified modules together with all of their dependencies.
mvn clean install -pl b2b-order/b2b-order-service -amUsing these options, developers can efficiently rebuild only the parts of a large e‑commerce project that are affected by changes, avoiding the time‑consuming full build of every module.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Selected Java Interview Questions
A professional Java tech channel sharing common knowledge to help developers fill gaps. Follow us!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
