Martijn Visser created FLINK-40686:
--------------------------------------
Summary: Shaded jars declare a bundled dependency's JPMS module
name
Key: FLINK-40686
URL: https://issues.apache.org/jira/browse/FLINK-40686
Project: Flink
Issue Type: Bug
Components: Build System
Reporter: Martijn Visser
maven-shade copies a bundled dependency's
{{META-INF/versions/N/module-info.class}} into the uber
jar. Where the jar also sets {{Multi-Release: true}} it is then read as that
dependency's module,
which is what broke the javadoc build in FLINK-40145.
Thirteen poms set {{Multi-Release}}. Four already exclude the descriptor for
every artifact and
FLINK-40145 fixed the two {{flink-models}} modules. Seven are left:
{{flink-dist}},
{{flink-s3-fs-hadoop}}, {{flink-s3-fs-presto}}, {{flink-gs-fs-hadoop}},
{{flink-azure-fs-hadoop}},
{{flink-oss-fs-hadoop}}, and {{flink-kubernetes}} which excludes only for
jackson and
{{org.yaml}}. Five of them already ship a foreign identity: the first three
declare
{{java.xml.bind}}, {{flink-gs-fs-hadoop}} declares
{{io.netty.internal.tcnative}} and
{{flink-azure-fs-hadoop}} declares {{com.fasterxml.jackson.core}}.
None of them fails the build, because a descriptor is only fatal when it
requires a module the jar
also bundles. {{flink-gs-fs-hadoop}} is the one to watch: its {{versions/9}}
descriptor is
{{com.fasterxml.jackson.dataformat.xml}}, which requires {{org.codehaus.stax2}}
and three jackson
modules that the same jar bundles. It is masked only because plexus-java counts
down from the
release version and finds netty-tcnative's {{versions/11}} descriptor first.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)