Derek Lewis created MNG-5571:
--------------------------------
Summary: Instructions to resume the build lie, with -T parallel
builds
Key: MNG-5571
URL: https://jira.codehaus.org/browse/MNG-5571
Project: Maven 2 & 3
Issue Type: Bug
Reporter: Derek Lewis
Priority: Minor
Attachments: resume-from-testcase.zip
In a project with many modules that are able to build in parallel, if one fails
the build, the output says to use -rf to resume from that module. However,
this may not run the other modules that were running in parallel. If one of
those modules also had failures, but had not yet reached those failures during
the first build, and those modules aren't build in the second build, the build
will pass, despite these 'hidden' errors.
In the example I've attached, there are four submodules, a, b, c and d. Module
d depends on a, b, and c, and all modules share a common parent module.
The properties fail.a, fail.b, and fail.c will cause the respective module to
fail.
Build first with just "mvn install -T4".
Next, imagine making a change in modules a, b, and c that break them, and build
with "mvn install -T4 -Dfail.a -Dfail.b -Dfail.c"
Due to the timing in the test poms (using antrun sleep), this should print:
{noformat}
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <goals> -rf :c
{noformat}
Above that, you will see it reporting the failure of all three modules, but in
a lot of cases where there are surefire tests failing, it's extremely difficult
to tell that more than one module failed. As a result, I generally just look
at the module it's told me to resume from, to find failures.
So, pretend you've done that, but the errors in a and b remain, and run "mvn
install -T4 -Dfail.a -Dfail.b -rf :c" as it's suggested.
The build passes, giving a false sense of confidence.
--
This message was sent by Atlassian JIRA
(v6.1.6#6162)