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)