gnodet opened a new pull request, #12135: URL: https://github.com/apache/maven/pull/12135
## Summary - Add explicit `module-info.java` to 17 modules (11 API + 6 impl) with proper `requires`, `exports`, `uses`, and `provides` directives - Add `Automatic-Module-Name` manifest entries to all 17 remaining modules (4 impl + 13 compat) via `maven-jar-plugin` configuration in root POM - Resolves #11642 ## Details ### Modules with `module-info.java` (17) **API modules (11):** `maven-api-annotations`, `maven-api-di`, `maven-api-xml`, `maven-api-metadata`, `maven-api-model`, `maven-api-settings`, `maven-api-toolchain`, `maven-api-plugin`, `maven-api-core`, `maven-api-spi`, `maven-api-cli` **Impl modules (6):** `maven-di`, `maven-xml`, `maven-support`, `maven-impl` (open module), `maven-jline`, `maven-logging` ### Modules with `Automatic-Module-Name` only (17) **Impl (4):** `maven-core`, `maven-cli`, `maven-executor`, `maven-testing` — cannot use `module-info.java` due to split packages with compat modules or complex DI/compat dependencies **Compat (13):** All compat modules — split packages among themselves prevent named module status ### Notable decisions - `maven-impl` is an `open module` because Maven's DI framework needs reflective access to instantiate components - `maven-cli` was originally planned for `module-info.java` but was downgraded to `Automatic-Module-Name` due to split packages between compat modules it depends on (e.g., `org.apache.maven.settings` in both `maven-settings` and `maven-core`) - `maven-api-model` declares `uses ModelObjectProcessor` for ServiceLoader support - `maven-impl` declares `uses RootDetector` for ServiceLoader support - `maven-impl` surefire configured with `useModulePath=false` to preserve existing test behavior ## Test plan - [x] `mvn verify -B -DskipTests` — all 34 modules compile successfully - [x] `mvn verify -B` — all tests pass except pre-existing failures unrelated to this PR (Mimir daemon tests in maven-cli/maven-executor, DI binding tests in maven-impl that also fail on master) - [x] Verified `jar --describe-module` shows correct module descriptors for all 17 module-info modules - [x] Verified `Automatic-Module-Name` manifest entries present in all 17 remaining module JARs 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
