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

Reply via email to