Le 2024-08-07 à 12 h 55, Guillaume Nodet a écrit :
I'm not a big fan of reducing the visibility of implementation
classes. The API is well defined, i.e. all org.apache.maven.api.*
packages.
It is because while the API does not expose Eclipse Aether, the
implementation does. If, in the future, we want to reduce the amount of
wrapping, we will need to evaluate the consequence of that change, and
having the implementation classes publicly accessible makes that
evaluation more difficult.
Anyway, I don't really see where the problem can be, as for plugins,
the default setup should only expose the org.apache.maven.api
packages, so they won't even have access to implementation classes. We
just need to merge https://github.com/apache/maven/pull/1336
If PR #1336 has the effect of making the implementation classes
inaccessible outside Maven core, then removing some "public" keywords
would not change the situation for plugins and would have the advantage
of clarity, isn't it?
Martin