Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.5.5, 1.6.2, 1.7.0
Description
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