private static String getLatestVersion(
String groupId, String artifactId, String minVersion, DeployableType type) {
LOG.debug("Looking for version: {}/{}", groupId, artifactId);
String searchVersion = String.format("(%s,)", minVersion);
MavenVersionRangeResult versionRangeResult =
getResolver().resolveVersionRange(formatMavenId(groupId, artifactId, searchVersion, type));
if (!versionRangeResult.getHighestVersion().getVersion().contains(SNAPSHOT)) {
return versionRangeResult.getHighestVersion().getVersion();
}
Map<Semver, MavenCoordinate> versionMap = new HashMap<>();
versionRangeResult
.getVersions()
.stream()
.forEach(
c -> {
versionMap.put(new Semver(c.getVersion(), SemverType.LOOSE), c);
});
Semver version =
versionMap
.keySet()
.stream()
.filter(v -> !v.getOriginalValue().contains(SNAPSHOT))
.max(ORDER)
.get();
LOG.debug("Found version: {}/{} -> {}", groupId, artifactId, version);
return versionMap.get(version).getVersion();
}