diff --git a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
index 268a033f..565e99d2 100644
--- a/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
+++ b/maven-plugin-testing-harness/src/main/java/org/apache/maven/api/plugin/testing/MojoExtension.java
@@ -146,6 +146,11 @@ public void beforeEach(ExtensionContext context) throws Exception {
.map(Basedir::value)
.orElseGet(PlexusExtension::getBasedir);
+ URL resource = context.getRequiredTestClass().getResource(basedir);
+ if (resource != null) {
+ basedir = Paths.get(resource.toURI()).toString();
+ }
+
setTestBasedir(basedir, context);
PlexusContainer plexusContainer = getContainer(context);
diff --git a/maven-plugin-testing-harness/src/test/java/org/apache/maven/plugin/testing/ParametersMojoTest.java b/maven-plugin-testing-harness/src/test/java/org/apache/maven/plugin/testing/ParametersMojoTest.java
index 4b6baed4..01c286dd 100644
--- a/maven-plugin-testing-harness/src/test/java/org/apache/maven/plugin/testing/ParametersMojoTest.java
+++ b/maven-plugin-testing-harness/src/test/java/org/apache/maven/plugin/testing/ParametersMojoTest.java
@@ -116,4 +116,12 @@ void basedirInjectedWithBasedirAnnotation(ParametersMojo mojo) {
assertEquals("i-have-a-basedir-set-by-annotation", mojo.getPlain());
assertDoesNotThrow(mojo::execute);
}
+
+ @Test
+ @Basedir("/projects/basedir-set-by-annotation-classpath")
+ @InjectMojo(goal = "parameters", pom = POM_DOT_XML_FILE)
+ void basedirInjectedWithBasedirFromClasspathAnnotation(ParametersMojo mojo) {
+ assertEquals("i-have-a-basedir-set-by-annotation-classpath", mojo.getPlain());
+ assertDoesNotThrow(mojo::execute);
+ }
}
diff --git a/maven-plugin-testing-harness/src/test/projects/basedir-set-by-annotation/pom.xml b/maven-plugin-testing-harness/src/test/projects/basedir-set-by-annotation/pom.xml
index 82cb188d..dc5af5cb 100644
--- a/maven-plugin-testing-harness/src/test/projects/basedir-set-by-annotation/pom.xml
+++ b/maven-plugin-testing-harness/src/test/projects/basedir-set-by-annotation/pom.xml
@@ -33,15 +33,6 @@ under the License.
test
test-plugin
0.0.1-SNAPSHOT
-
-
- test
-
- test
-
- compile
-
-
i-have-a-basedir-set-by-annotation
diff --git a/maven-plugin-testing-harness/src/test/resources/projects/basedir-set-by-annotation-classpath/pom.xml b/maven-plugin-testing-harness/src/test/resources/projects/basedir-set-by-annotation-classpath/pom.xml
new file mode 100644
index 00000000..0fd819e3
--- /dev/null
+++ b/maven-plugin-testing-harness/src/test/resources/projects/basedir-set-by-annotation-classpath/pom.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ 4.0.0
+
+ test
+ test-test
+ 1.0-SNAPSHOT
+ jar
+
+
+
+
+ test
+ test-plugin
+ 0.0.1-SNAPSHOT
+
+ i-have-a-basedir-set-by-annotation-classpath
+
+
+
+
+