[ 
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)

Reply via email to