Description
In PR #1452, we removed the plugin that adds provided
and optional
dependencies to the project. At the time we were working to untangle the ES-Hadoop build logic in order to support Spark/Scala cross compilation. The PropDeps plugin ended up on the chopping block since project models for the Spark projects would have required duplicating the plugin's logic to work with our homegrown abstraction around project variants. Instead of duplicating/extending the plugin, we discussed removing it from the project all together, instead relying on compile
and runtime
scopes, and assuming that the more frequent deployment method for these libraries is via jar arguments to submission programs.
We have been getting some feedback from the community though that this does cause confusion: Projects that previously bundled application and library code together for submission to computing environments would begin breaking since integrations are now being marked as compile/runtime in the pom.
We should make an effort to reinstate the usage of provided
dependencies into the project. Instead of using a plugin to implement this, we should roll the logic directly into our build, which will give us total control over its maintenance going forward.