Skip to content

Commit 4bbf7cd

Browse files
[MENFORCER-415] Move error message to MojoException
In multimodal project it is very difficult to find a reason of failed job.
1 parent 26697b1 commit 4bbf7cd

File tree

1 file changed

+11
-21
lines changed
  • maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer

1 file changed

+11
-21
lines changed

maven-enforcer-plugin/src/main/java/org/apache/maven/plugins/enforcer/EnforceMojo.java

+11-21
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818
*/
1919
package org.apache.maven.plugins.enforcer;
2020

21+
import java.util.ArrayList;
2122
import java.util.Hashtable;
22-
import java.util.LinkedHashMap;
2323
import java.util.List;
24-
import java.util.Map;
2524
import java.util.Objects;
2625
import java.util.Optional;
2726
import java.util.stream.Collectors;
@@ -228,9 +227,6 @@ public void execute() throws MojoExecutionException {
228227
}
229228
}
230229

231-
// messages with warn/error flag
232-
Map<String, Boolean> messages = new LinkedHashMap<>();
233-
234230
// create my helper
235231
PluginParameterExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
236232
EnforcerRuleHelper helper = new DefaultEnforcementRuleHelper(session, evaluator, log, container);
@@ -241,7 +237,7 @@ public void execute() throws MojoExecutionException {
241237
failFast = false;
242238
}
243239

244-
boolean hasErrors = false;
240+
List<String> errorMessages = new ArrayList<>();
245241

246242
// go through each rule
247243
for (int ruleIndex = 0; ruleIndex < rulesList.size(); ruleIndex++) {
@@ -252,36 +248,30 @@ public void execute() throws MojoExecutionException {
252248
executeRule(ruleIndex, ruleDesc, helper);
253249
} catch (EnforcerRuleError e) {
254250
String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, EnforcerLevel.ERROR, e);
255-
throw new MojoExecutionException(ruleMessage, e);
251+
throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
256252
} catch (EnforcerRuleException e) {
257253

258254
String ruleMessage = createRuleMessage(ruleIndex, ruleDesc, level, e);
259255

260256
if (failFast && level == EnforcerLevel.ERROR) {
261-
throw new MojoExecutionException(ruleMessage, e);
257+
throw new MojoExecutionException(System.lineSeparator() + ruleMessage, e);
262258
}
263259

264260
if (level == EnforcerLevel.ERROR) {
265-
hasErrors = true;
266-
messages.put(ruleMessage, true);
261+
errorMessages.add(ruleMessage);
267262
} else {
268-
messages.put(ruleMessage, false);
263+
log.warn(ruleMessage);
269264
}
270265
}
271266
}
272267

273-
// log any messages
274-
messages.forEach((message, error) -> {
275-
if (fail && error) {
276-
log.error(message);
268+
if (!errorMessages.isEmpty()) {
269+
if (fail) {
270+
throw new MojoExecutionException(
271+
System.lineSeparator() + String.join(System.lineSeparator(), errorMessages));
277272
} else {
278-
log.warn(message);
273+
errorMessages.forEach(log::warn);
279274
}
280-
});
281-
282-
if (fail && hasErrors) {
283-
throw new MojoExecutionException(
284-
"Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.");
285275
}
286276
}
287277

0 commit comments

Comments
 (0)