Details
-
Technical Debt
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
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.
Attachments
Issue Links
- blocks
-
FLINK-28260 flink-runtime-web fails to execute "npm ci" on Apple Silicon (arm64) without rosetta
- Open
- is blocked by
-
FLINK-28194 Remove workaround around avro sql jar
- Closed
-
FLINK-30089 Remove dependency promotion from kinesis connector
- Closed
- relates to
-
FLINK-32734 Add .mvn/maven.config to .gitignore
- Resolved
-
FLINK-34148 Potential regression (Jan. 13): stringWrite with Java8
- Closed