Currently Maven plugin requires its own dependency for the JDBC driver,
that is most likely will be among project dependencies.
We can potentially remove this duplication by utilizing custom ClassLoader(namely URLClassLoader) in the plugin that will use project's dependencies as sources.
Gradle plugin can have this feature too, but it is not completed yet (
- Plugins are already using cayenne DI so custom ClassLoader can be simply injected via ClassLoaderManager.
- MavenProject class is available from the plugin and exposes Artifacts that are essentially dependencies available.