-
- def updateMavenDependency = { dep ->
- def mvnUrl = dep.text()
- if(mvnUrl.startsWith("mvn:")) {
- def components = mvnUrl.substring(4).split("/")
- if(components[2] == versionPlaceholder) {
- dep.value = updatedURLFromProject(components)
- }
- }
+ def updateMavenDependency = { dep ->
+ def mvnUrl = dep.text()
+ def prefix = ""
+ if (mvnUrl.startsWith("wrap:")) {
+ prefix = "wrap:"
+ mvnUrl = mvnUrl.substring(5)
+ }
+ if (mvnUrl.startsWith("mvn:") && mvnUrl.indexOf(versionPlaceholder) >= 0) {
+ // Process property place-holders
+ def dollarIndex;
+ while ((dollarIndex = mvnUrl.indexOf("\${")) >= 0) {
+ def closingBrace = mvnUrl.indexOf("}", dollarIndex);
+ if (closingBrace > dollarIndex) {
+ def propKey = mvnUrl.substring(dollarIndex + 2, closingBrace);
+ def propVal = project.properties[propKey];
+ mvnUrl = mvnUrl.replace("\${${propKey}}", propVal);
+ } else {
+ println "[WARN] Malformed Maven URL: ${mvnUrl}";
+ break;
+ }
+ }
+ def components = mvnUrl.substring(4).split("/")
+ if (components[2].startsWith(versionPlaceholder)) {
+ def suffix = "";
+ if (components[2].length() > versionPlaceholder.length()) {
+ suffix = components[2].substring(versionPlaceholder.length())
+ components[2] = versionPlaceholder
+ }
+ dep.value = prefix + updatedURLFromProject(components) + suffix
+ }
+ }