You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Stephan Ewen (JIRA)" <ji...@apache.org> on 2016/02/18 14:18:18 UTC

[jira] [Commented] (FLINK-3441) Revisit quickstarts exclusion policy

    [ https://issues.apache.org/jira/browse/FLINK-3441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15152287#comment-15152287 ] 

Stephan Ewen commented on FLINK-3441:
-------------------------------------

One way to solve this is to set the dependencies to "provided" by default, and add a profile that sets them to "compile" to run this in IntelliJ.

> Revisit quickstarts exclusion policy
> ------------------------------------
>
>                 Key: FLINK-3441
>                 URL: https://issues.apache.org/jira/browse/FLINK-3441
>             Project: Flink
>          Issue Type: Improvement
>          Components: Quickstarts
>    Affects Versions: 1.0.0
>            Reporter: Till Rohrmann
>            Priority: Minor
>
> Flink provides quickstart projects to quickly set up a Flink project. In order to decrease the size of the resulting jar, the predefined {{pom.xml}} file contains a list of excluded dependencies.
> The problem with this approach is two-fold: First of all, the list seems to be rather arbitrary. Why excluding {{org.apache.commons:commons-math}} but not {{org.apache.commons:commons-math3}}? It seems as if this list would have to be kept up to date with every changing dependency of Flink.
> Secondly and the more severe problem is the following: The exclusions assume that Flink always provides a compatible version for an excluded dependency. However, since the exclusions are not bound to a specific version, this won't necessarily be true. For example, {{snappy-java}} is excluded from the user job jar, because Flink with Hadoop {{2.3.0}} comes with {{snappy-java:1.0.5}}. However, the {{kafka-clients:0.9.0}} which comes with the {{flink-connector-kafka-0.9}} dependency has a transitive dependency on {{snappy-java:1.1.1.7}}. Consequently, this dependency will be excluded from the user job jar per default. If version {{1.1.1.7}} is not compatible to {{snappy-java:1.0.5}}, then the program will crash at runtime. This will be very hard to understand for the user because it is a very subtle bug since the exclusions also affect the transitive dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)