in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequirePrerequisite.java [78:117]
public void execute() throws EnforcerRuleException {
try {
if ("pom".equals(project.getPackaging())) {
getLog().debug("Packaging is pom, skipping requirePrerequisite rule");
return;
}
if (packagings != null && !packagings.contains(project.getPackaging())) {
getLog().debug("Packaging is " + project.getPackaging() + ", skipping requirePrerequisite rule");
return;
}
Prerequisites prerequisites = project.getPrerequisites();
if (prerequisites == null) {
throw new EnforcerRuleException("Requires prerequisite not set");
}
if (mavenVersion != null) {
VersionRange requiredVersionRange = VersionRange.createFromVersionSpec(mavenVersion);
if (!requiredVersionRange.hasRestrictions()) {
requiredVersionRange = VersionRange.createFromVersionSpec("[" + mavenVersion + ",)");
}
VersionRange specifiedVersion = VersionRange.createFromVersionSpec(prerequisites.getMaven());
VersionRange restrictedVersionRange = requiredVersionRange.restrict(specifiedVersion);
if (restrictedVersionRange.getRecommendedVersion() == null) {
throw new EnforcerRuleException("The specified Maven prerequisite( " + specifiedVersion
+ " ) doesn't match the required version: " + mavenVersion);
}
}
} catch (InvalidVersionSpecificationException e) {
throw new EnforcerRuleException(e.getMessage(), e);
}
}