{
project = (MavenProject) helper.evaluate( "${project}" );
}
catch ( ExpressionEvaluationException eee )
{
throw new EnforcerRuleException( "Unable to retrieve the MavenProject: ", eee );
}
// consider including profile based artifacts
Map<String, List<String>> versionMembers = new LinkedHashMap<String, List<String>>();
Set<String> buildPluginSet = new HashSet<String>( buildPlugins );
buildPluginSet.addAll( plugins );
Set<String> reportPluginSet = new HashSet<String>( reportPlugins );
reportPluginSet.addAll( plugins );
versionMembers.putAll( collectVersionMembers( project.getArtifacts(), dependencies, " (dependency)" ) );
versionMembers.putAll( collectVersionMembers( project.getPluginArtifacts(), buildPlugins, " (buildPlugin)" ) );
versionMembers.putAll( collectVersionMembers( project.getReportArtifacts(), reportPlugins, " (reportPlugin)" ) );
if ( versionMembers.size() > 1 )
{
StringBuilder builder = new StringBuilder( "Found entries with different versions\n" );
for ( Map.Entry<String, List<String>> entry : versionMembers.entrySet() )
{
builder.append( "Entries with version " ).append( entry.getKey() ).append( '\n' );
for ( String conflictId : entry.getValue() )
{
builder.append( "- " ).append( conflictId ).append( '\n' );
}
}
throw new EnforcerRuleException( builder.toString() );
}
}