in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/BanDuplicatePomDependencyVersions.java [93:148]
private void maven2Validation(Model model) throws EnforcerRuleException {
List<Dependency> dependencies = model.getDependencies();
Map<String, Integer> duplicateDependencies = validateDependencies(dependencies);
int duplicates = duplicateDependencies.size();
StringBuilder summary = new StringBuilder();
messageBuilder(duplicateDependencies, "dependencies.dependency", summary);
if (model.getDependencyManagement() != null) {
List<Dependency> managementDependencies =
model.getDependencyManagement().getDependencies();
Map<String, Integer> duplicateManagementDependencies = validateDependencies(managementDependencies);
duplicates += duplicateManagementDependencies.size();
messageBuilder(duplicateManagementDependencies, "dependencyManagement.dependencies.dependency", summary);
}
List<Profile> profiles = model.getProfiles();
for (Profile profile : profiles) {
List<Dependency> profileDependencies = profile.getDependencies();
Map<String, Integer> duplicateProfileDependencies = validateDependencies(profileDependencies);
duplicates += duplicateProfileDependencies.size();
messageBuilder(
duplicateProfileDependencies,
"profiles.profile[" + profile.getId() + "].dependencies.dependency",
summary);
if (profile.getDependencyManagement() != null) {
List<Dependency> profileManagementDependencies =
profile.getDependencyManagement().getDependencies();
Map<String, Integer> duplicateProfileManagementDependencies =
validateDependencies(profileManagementDependencies);
duplicates += duplicateProfileManagementDependencies.size();
messageBuilder(
duplicateProfileManagementDependencies,
"profiles.profile[" + profile.getId() + "].dependencyManagement.dependencies.dependency",
summary);
}
}
if (summary.length() > 0) {
StringBuilder message = new StringBuilder();
message.append("Found ").append(duplicates).append(" duplicate dependency ");
message.append(duplicateDependencies.size() == 1 ? "declaration" : "declarations")
.append(" in this project:" + System.lineSeparator());
message.append(summary);
throw new EnforcerRuleException(message.toString());
}
}