diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
index 23c602d035f0..d2553c455df5 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
@@ -982,10 +982,12 @@ private void validateRawRepositories(
repository.getUrl(),
null,
repository)) {
- // only allow ${basedir} and ${project.basedir}
+ // only allow ${basedir}, ${project.basedir} or ${project.baseUri}
Matcher m = EXPRESSION_NAME_PATTERN.matcher(repository.getUrl());
while (m.find()) {
- if (!("basedir".equals(m.group(1)) || "project.basedir".equals(m.group(1)))) {
+ if (!("basedir".equals(m.group(1))
+ || "project.basedir".equals(m.group(1))
+ || "project.baseUri".equals(m.group(1)))) {
validateStringNoExpression(
prefix + prefix2 + "[" + repository.getId() + "].url",
problems,
diff --git a/maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-basedir-expression.xml b/maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-basedir-expression.xml
index 3e64091da822..2dd11eb42ed0 100644
--- a/maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-basedir-expression.xml
+++ b/maven-model-builder/src/test/resources/poms/validation/raw-model/repository-with-basedir-expression.xml
@@ -37,6 +37,14 @@ under the License.
repo
file://${basedir}/target/remote-repo
+
+ repo-project-basedir
+ file://${project.basedir}/sdk/maven/repo
+
+
+ repo-project-baseUri
+ ${project.baseUri}/sdk/maven/repo
+
-
\ No newline at end of file
+