Github user StephanEwen commented on the issue:
Thanks for checking this out!
Concerning the removed `flink-clients` dependency - that was done on
purpose. Here is my motivation for that:
- For the 'provided' API dependency, it should actually not be there.
- It mainly matters to the in-Eclipse execution, which needs a 'provided'
- I would prefer to remove it now, because the dependencies probably
change anyways in the future.
The proposal I want to make for the next Flink version is to have something
like `flink-all` (or `flink-base`) which exactly refers to what is in the
`flink-dist` jar (and `flink-dist` draws its jar from there). We set that as a
provided dependency anywhere (connector, library, quickstart), we have exactly
everything provided that will available through Flink's runtime, and nothing
that will not be there. Easiest way to keep these things in sync.
Now I am unsure if `flink-dist` can currently take a `flink-all` like role,
because it declares a lot of additional provided dependencies, for the sake of
putting them into `opt` or `examples`. Now, according to the maven dependency
management, a transitive provided dependency of a provided dependency is not
propagated (in which case it would be okay to use flink-dist), but I am not
sure we want to rely that across maven command line, IntelliJ and Eclipse, etc.
The last sentence incidentally just made me realize that I should probably
change the `flink-dist` dependency in the IDEA profile to
`flink-streaming-java` / `flink-clients` for exactly that reason...