Correct regex matching boot project versions

This commit is contained in:
aboyko
2022-08-08 19:01:18 -04:00
parent e41bf42210
commit 7e434c81fd
2 changed files with 20 additions and 3 deletions

View File

@@ -24,7 +24,7 @@ public class SpringProjectUtil {
public static final String SPRING_BOOT = "spring-boot";
private static final String VERION_PATTERN_STR = "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?";
private static final String VERION_PATTERN_STR = "(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)((\\.|-).+)?";
public static final Logger log = LoggerFactory.getLogger(SpringProjectUtil.class);
@@ -131,7 +131,10 @@ public class SpringProjectUtil {
String major = matcher.group(1);
String minor = matcher.group(2);
String patch = matcher.group(3);
String qualifier = matcher.group(4);
String qualifier = null;
if (matcher.group(4) != null && matcher.group(4).length() > 1) {
qualifier = matcher.group(4).substring(1);
}
return new Version(
Integer.parseInt(major),
Integer.parseInt(minor),

View File

@@ -18,7 +18,6 @@ public final class Version {
private String qualifier;
public Version(int major, int minor, int patch, String qualifier) {
super();
this.major = major;
this.minor = minor;
this.patch = patch;
@@ -41,4 +40,19 @@ public final class Version {
return qualifier;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(major);
sb.append('.');
sb.append(minor);
sb.append('.');
sb.append(patch);
if (qualifier != null) {
sb.append('.');
sb.append(qualifier);
}
return sb.toString();
}
}