[
https://issues.apache.org/jira/browse/FLINK-28016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chesnay Schepler updated FLINK-28016:
-------------------------------------
Description:
We are currently de-facto limited to Maven 3.2.5 because our packaging relies
on the shade-plugin modifying the dependency tree at runtime when bundling
dependencies, which is no longer possible on Maven 3.3+.
Being locked in to such an old Maven version isn't a good state to be in, and
the contributor experience suffers as well.
I've been looking into removing this limitation by explicitly marking every
dependency that we bundle as {{optional}} in the poms, which really means
{{non-transitive}}. This ensures that the everything being bundled by one
module is not visible to other modules. Some tooling to capture developer
mistakes were also written.
Overall this is actually quite a nice change, as it makes things more explicit
and reduces inconsistencies (e.g., the dependency plugin results are
questionable if the shade-plugin didn't run!); and it already highlighted
several problems in Flink.
This change will have no effect on users or the released poms, because the
dependency-reduced poms will be generated as before and remove all modified
dependencies.
> Support Maven 3.3+
> ------------------
>
> Key: FLINK-28016
> URL: https://issues.apache.org/jira/browse/FLINK-28016
> Project: Flink
> Issue Type: Technical Debt
> Components: Build System
> Reporter: Chesnay Schepler
> Assignee: Chesnay Schepler
> Priority: Major
> Fix For: 1.16.0
>
>
> We are currently de-facto limited to Maven 3.2.5 because our packaging relies
> on the shade-plugin modifying the dependency tree at runtime when bundling
> dependencies, which is no longer possible on Maven 3.3+.
> Being locked in to such an old Maven version isn't a good state to be in, and
> the contributor experience suffers as well.
> I've been looking into removing this limitation by explicitly marking every
> dependency that we bundle as {{optional}} in the poms, which really means
> {{non-transitive}}. This ensures that the everything being bundled by one
> module is not visible to other modules. Some tooling to capture developer
> mistakes were also written.
> Overall this is actually quite a nice change, as it makes things more
> explicit and reduces inconsistencies (e.g., the dependency plugin results are
> questionable if the shade-plugin didn't run!); and it already highlighted
> several problems in Flink.
> This change will have no effect on users or the released poms, because the
> dependency-reduced poms will be generated as before and remove all modified
> dependencies.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)