1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.enforcer.rules.version;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23
24 import java.util.Objects;
25
26 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
27 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
28 import org.apache.maven.rtinfo.RuntimeInformation;
29
30
31
32
33
34
35 @Named("requireMavenVersion")
36 public final class RequireMavenVersion extends AbstractVersionEnforcer {
37
38 private final RuntimeInformation runtimeInformation;
39
40 @Inject
41 public RequireMavenVersion(RuntimeInformation runtimeInformation) {
42 this.runtimeInformation = Objects.requireNonNull(runtimeInformation);
43 }
44
45 @Override
46 public void execute() throws EnforcerRuleException {
47 String mavenVersion = runtimeInformation.getMavenVersion();
48 getLog().debug("Detected Maven Version: " + mavenVersion);
49 if (mavenVersion == null) {
50 throw new EnforcerRuleException("Unable to detect Maven Version");
51 }
52 DefaultArtifactVersion detectedVersion = new DefaultArtifactVersion(mavenVersion);
53 enforceVersion("Maven", getVersion(), detectedVersion);
54 }
55
56 @Override
57 public String toString() {
58 return String.format("%s[message=%s, version=%s]", getClass().getSimpleName(), getMessage(), getVersion());
59 }
60 }