ascheman opened a new issue, #3393:
URL: https://github.com/apache/maven-surefire/issues/3393
Follow-up to #3345 / #3392, which add support for the Maven 4 Module Source
Hierarchy with ONE Java module per POM.
Maven 4 allows declaring several modules in one POM (`<build><sources>` with
multiple `<module>` entries, POM model 4.1.0). maven-compiler-plugin 4.x
compiles them to `target/classes/<module-1>/`, `target/classes/<module-2>/`, …
and test classes to `target/test-classes/<module-N>/`.
With the single-module support from #3392, surefire on such a project:
1. detects only the FIRST nested module descriptor,
2. scans only that module's nested test directory,
3. decides classpath-vs-module-path placement of dependencies with that
single module descriptor via `LocationManager.resolvePaths(...)` — dependencies
that only sibling modules `require` stay on the classpath, and the forked JVM
fails at boot:
`java.lang.module.FindException: Module <dep> not found, required by
<sibling-module>`
(all nested modules resolve into the boot layer because `target/classes`
is on the module path as a directory of modules, together with `--add-modules
ALL-MODULE-PATH`),
4. patches and opens only the first module.
Reproduced with a real-world 3-module component (jakarta.json/jsonb
implementation, 602 tests): zero-config surefire fails with the `FindException`
above; the only working setup is one surefire execution per module with
explicit
`classesDirectory`/`testClassesDirectory`/`additionalClasspathElements`.
Expected: one `mvn test` execution runs the tests of ALL modules — each
module patched with its own `target/test-classes/<module>/`, each opened for
reflection, and the dependency split computed as the union over all module
descriptors.
A PR implementing this (stacked on #3392) follows immediately.
cc @desruisseaux — this is the multi-module follow-up announced in #3345.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]