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)

Reply via email to