You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chesnay Schepler (Jira)" <ji...@apache.org> on 2022/06/13 09:57:00 UTC

[jira] [Updated] (FLINK-28016) Support Maven 3.3+

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