Chesnay Schepler created FLINK-11026:
----------------------------------------
Summary: Rework creation of sql-client connector/format jars
Key: FLINK-11026
URL: https://issues.apache.org/jira/browse/FLINK-11026
Project: Flink
Issue Type: Improvement
Components: Build System, SQL Client
Affects Versions: 1.6.2, 1.5.5, 1.7.0
Reporter: Chesnay Schepler
Assignee: Chesnay Schepler
For the SQL client we currently have a separate {{sql-jars}} profile in various
connectors/formats that create an additional fat jar with a separate classifier.
One of the core maven mantras is "One artifact per module.", and we see the
importance of this mantra as our current packaging strategy makes it impossible
to provide different NOTICE files for the created jars (regular and sql-jar).
Currently we would be forced to provide the same file for both jars, which will
cause problems for any downstream users that wants to handle NOTICE files
properly. We would cause the same issue we had with netty, which categorically
claims to be bundling dependencies although it doesn't, forcing us to manually
cut out the valid parts.
My proposal is to move custom packaging strategies into their own module that
depend on the original module.
I will use {{flink-connector-elasticsearch6}} as an example, which packages
both a regular jar without any included dependencies, and a sql jar bundling
everything.
* create a separate
{{flink-sql-connector-elasticsearch6/}}{{flink-connector-elasticsearch6-uber}}{{}}
module
* this module depends on {{flink-connector-elasticsearch6}}, and bundles all
dependencies
* move the current shading logic for the sql jar out of the {{sql-jars}}
profile{{}}
* add a {{sql-jars}} profile to {{flink-connectors}} for skipping the creation
of these jars
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)