diff --git a/compat/maven-model-builder/src/site/apt/index.apt b/compat/maven-model-builder/src/site/apt/index.apt index ca1ff8c6cb9b..637f26c43925 100644 --- a/compat/maven-model-builder/src/site/apt/index.apt +++ b/compat/maven-model-builder/src/site/apt/index.apt @@ -180,8 +180,8 @@ Maven Model Builder <<>> ()\ <<>> () | the directory containing the <<>> file | <<<$\{project.basedir\}>>> | *----+------+------+ -| <<>>\ -<<>> () | the directory containing the <<>> file as URI | <<<$\{project.baseUri\}>>> | +| <<>> ()\ +<<>> () | the directory containing the <<>> file as URI. Those properties are deprecated, use <<<$\{project.basedir.uri\}>>> instead. | <<<$\{project.basedir.uri\}>>> | *----+------+------+ | <<>> | the project's root directory (containing a <<<.mvn>>> directory or with the <<>> xml attribute) | <<<$\{project.rootDirectory\}>>> | *----+------+------+ diff --git a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelValidator.java b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelValidator.java index 712de25dace1..1638caa0b5dd 100644 --- a/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelValidator.java +++ b/impl/maven-impl/src/main/java/org/apache/maven/impl/model/DefaultModelValidator.java @@ -1408,7 +1408,16 @@ private void validateRawRepositories( Matcher m = EXPRESSION_NAME_PATTERN.matcher(repository.getUrl()); while (m.find()) { String expr = m.group(1); - if (!("basedir".equals(expr) + if ("project.baseUri".equals(expr)) { + addViolation( + problems, + Severity.WARNING, + Version.V40, + prefix + prefix2 + "[" + repository.getId() + "].url", + null, + "contains a deprecated 'project.baseUri' expression, use 'project.basedir.uri' instead.", + repository); + } else if (!("basedir".equals(expr) || "project.basedir".equals(expr) || expr.startsWith("project.basedir.") || "project.rootDirectory".equals(expr) diff --git a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelValidatorTest.java b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelValidatorTest.java index dcd6fa99cc9b..0ac558cc0a16 100644 --- a/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelValidatorTest.java +++ b/impl/maven-impl/src/test/java/org/apache/maven/impl/model/DefaultModelValidatorTest.java @@ -811,8 +811,8 @@ void repositoryWithExpression() throws Exception { @Test void repositoryWithBasedirExpression() throws Exception { - SimpleProblemCollector result = validateRaw("raw-model/repository-with-basedir-expression.xml"); - assertViolations(result, 0, 0, 0); + SimpleProblemCollector result = validateFile("raw-model/repository-with-basedir-expression.xml"); + assertViolations(result, 0, 0, 1); } @Test diff --git a/impl/maven-impl/src/test/resources/poms/validation/raw-model/repository-with-expression.xml b/impl/maven-impl/src/test/resources/poms/validation/raw-model/repository-with-expression.xml index fcdd9465d82b..f5a5cc36f6ce 100644 --- a/impl/maven-impl/src/test/resources/poms/validation/raw-model/repository-with-expression.xml +++ b/impl/maven-impl/src/test/resources/poms/validation/raw-model/repository-with-expression.xml @@ -41,6 +41,10 @@ under the License. repo file://${x}/sdk/maven/repo + + repo2 + ${project.basedir.uri}/sdk/maven/repo + \ No newline at end of file