18
18
*/
19
19
package org .apache .maven .plugins .enforcer ;
20
20
21
+ import java .util .ArrayList ;
21
22
import java .util .Hashtable ;
22
- import java .util .LinkedHashMap ;
23
23
import java .util .List ;
24
- import java .util .Map ;
25
24
import java .util .Objects ;
26
25
import java .util .Optional ;
27
26
import java .util .stream .Collectors ;
@@ -228,9 +227,6 @@ public void execute() throws MojoExecutionException {
228
227
}
229
228
}
230
229
231
- // messages with warn/error flag
232
- Map <String , Boolean > messages = new LinkedHashMap <>();
233
-
234
230
// create my helper
235
231
PluginParameterExpressionEvaluator evaluator = new PluginParameterExpressionEvaluator (session , mojoExecution );
236
232
EnforcerRuleHelper helper = new DefaultEnforcementRuleHelper (session , evaluator , log , container );
@@ -241,7 +237,7 @@ public void execute() throws MojoExecutionException {
241
237
failFast = false ;
242
238
}
243
239
244
- boolean hasErrors = false ;
240
+ List < String > errorMessages = new ArrayList <>() ;
245
241
246
242
// go through each rule
247
243
for (int ruleIndex = 0 ; ruleIndex < rulesList .size (); ruleIndex ++) {
@@ -252,36 +248,30 @@ public void execute() throws MojoExecutionException {
252
248
executeRule (ruleIndex , ruleDesc , helper );
253
249
} catch (EnforcerRuleError e ) {
254
250
String ruleMessage = createRuleMessage (ruleIndex , ruleDesc , EnforcerLevel .ERROR , e );
255
- throw new MojoExecutionException (ruleMessage , e );
251
+ throw new MojoExecutionException (System . lineSeparator () + ruleMessage , e );
256
252
} catch (EnforcerRuleException e ) {
257
253
258
254
String ruleMessage = createRuleMessage (ruleIndex , ruleDesc , level , e );
259
255
260
256
if (failFast && level == EnforcerLevel .ERROR ) {
261
- throw new MojoExecutionException (ruleMessage , e );
257
+ throw new MojoExecutionException (System . lineSeparator () + ruleMessage , e );
262
258
}
263
259
264
260
if (level == EnforcerLevel .ERROR ) {
265
- hasErrors = true ;
266
- messages .put (ruleMessage , true );
261
+ errorMessages .add (ruleMessage );
267
262
} else {
268
- messages . put (ruleMessage , false );
263
+ log . warn (ruleMessage );
269
264
}
270
265
}
271
266
}
272
267
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 ) );
277
272
} else {
278
- log . warn ( message );
273
+ errorMessages . forEach ( log :: warn );
279
274
}
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." );
285
275
}
286
276
}
287
277
0 commit comments