Skip to content
Latchkey

mvn -fae: Fail at End Across Modules

mvn -fae (--fail-at-end) continues the reactor after a module fails, building every module not affected by the failure, then fails at the end with the full list.

For multi-module CI, -fae gives a complete picture: one broken module does not hide failures in unrelated ones. -ff and -fn are the fail-fast and never variants.

What it does

Maven has three reactor failure modes. -ff (--fail-fast, the default) stops at the first failed module. -fae (--fail-at-end) keeps building modules that do not depend on the failed one, then fails the build with all collected failures. -fn (--fail-never) reports failures but exits 0.

Common usage

Terminal
mvn -B -fae verify
mvn -B --fail-at-end install
# never fail (e.g. a best-effort report job)
mvn -B -fn test

Flags

FlagWhat it does
-fae / --fail-at-endBuild all unaffected modules, fail at the end
-ff / --fail-fastStop at the first failure (default)
-fn / --fail-neverReport failures but exit 0
-BBatch mode for CI

In CI

Use -fae so a single failing module surfaces every other failure in one run, cutting the fix-push-wait loop on large reactors. Reserve -fn for non-gating jobs; in a gate it would let a broken build pass. Cache ~/.m2 regardless.

Common errors in CI

The build still ends "BUILD FAILURE" with a per-module summary; modules that depend on a failed one are "SKIPPED", which is expected with -fae, not a separate error. If a clearly broken build reports "BUILD SUCCESS", you likely ran -fn, which masks failures; switch to -fae or the default.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →