in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequireSameVersions.java [68:96]
public void execute() throws EnforcerRuleException {
// consider including profile based artifacts
Map<String, List<String>> versionMembers = new LinkedHashMap<>();
// CHECKSTYLE_OFF: LineLength
versionMembers.putAll(collectVersionMembers(project.getArtifacts(), dependencies, " (dependency)"));
versionMembers.putAll(collectVersionMembers(project.getPluginArtifacts(), buildPlugins, " (buildPlugin)"));
versionMembers.putAll(collectVersionMembers(project.getReportArtifacts(), reportPlugins, " (reportPlugin)"));
// CHECKSTYLE_ON: LineLength
if (versionMembers.size() > 1) {
StringBuilder builder = new StringBuilder("Found entries with different versions" + System.lineSeparator());
for (Map.Entry<String, List<String>> entry : versionMembers.entrySet()) {
builder.append("Entries with version ").append(entry.getKey()).append(System.lineSeparator());
for (String conflictId : entry.getValue()) {
builder.append("- ").append(conflictId).append(System.lineSeparator());
}
}
throw new EnforcerRuleException(builder.toString());
}
if (sameModuleVersions) {
MavenProject topLevelProject = session.getTopLevelProject();
if (!Objects.equals(topLevelProject.getVersion(), project.getVersion())) {
throw new EnforcerRuleException("Top level project has version " + topLevelProject.getVersion()
+ " but current module has different version " + project.getVersion());
}
}
}