From c259198a579c294569498a4019ba5cf25cc60f68 Mon Sep 17 00:00:00 2001 From: Stephan Ewen Date: Mon, 19 Dec 2016 16:24:29 +0100 Subject: [PATCH 1/3] [FLINK-5369] [build] Remove jsr305 and logging as root dependencies. Currently, every project in Flink has a hard (compile scope) dependency on the jsr305, slf4j, and log4j artifacts. That way they are pulled into every fat jar, including user fat jars as soon as they refer to a connector or library. This commit changes the behavior in two ways: 1. It removes the concrete logger dependencies from the root pom file. Instead, it adds them to the 'flink-core' project. That way, all modules that refer to 'flink-core' will have those dependencies as well, but the projects that have 'flink-core' as provided (connectors, libraries, user programs, etc) will have those dependencies transitively as provided as well. 2. The commit overrides the slf4j and jsr305 dependencies in the parents of 'flink-connectors', 'flink-libraries', and 'flink-metrics' and sets the to 'provided'. That way all core projects pull the logger classes, but all projects that are not part of flink-dist (and rather bundled in fat jars) will not bundle these dependencies again. The flink-dist puts the dependencies into the fat jar (slf4j, jsr305) or the lib folder (log4j). --- flink-connectors/pom.xml | 17 ++++++ flink-core/pom.xml | 31 ++++++++++- flink-java/pom.xml | 8 +++ flink-libraries/flink-cep-scala/pom.xml | 21 ++++++++ flink-libraries/flink-gelly-examples/pom.xml | 14 +++++ flink-libraries/flink-gelly-scala/pom.xml | 41 +++++++++++--- flink-libraries/flink-gelly/pom.xml | 6 +++ flink-libraries/flink-ml/pom.xml | 26 +++++++++ flink-libraries/pom.xml | 18 +++++++ flink-metrics/pom.xml | 18 +++++++ .../resources/archetype-resources/pom.xml | 32 +++++++++++ .../resources/archetype-resources/pom.xml | 28 ++++++++++ flink-runtime/pom.xml | 5 ++ flink-scala/pom.xml | 6 --- flink-shaded-hadoop/pom.xml | 9 ---- pom.xml | 54 +++++++++++-------- 16 files changed, 288 insertions(+), 46 deletions(-) diff --git a/flink-connectors/pom.xml b/flink-connectors/pom.xml index ba5ce46d54d59..c563d9265463e 100644 --- a/flink-connectors/pom.xml +++ b/flink-connectors/pom.xml @@ -54,6 +54,23 @@ under the License. flink-connector-filesystem + + + + + org.slf4j + slf4j-api + provided + + + com.google.code.findbugs + jsr305 + provided + + + + + org.apache.commons + commons-lang3 + + + + com.esotericsoftware.kryo kryo @@ -87,7 +95,28 @@ under the License. ${asm.version} - + + + + org.slf4j + slf4j-log4j12 + + + + log4j + log4j + + + + org.apache.flink flink-test-utils-junit diff --git a/flink-java/pom.xml b/flink-java/pom.xml index 728b6eeda4361..846209fa22511 100644 --- a/flink-java/pom.xml +++ b/flink-java/pom.xml @@ -53,12 +53,20 @@ under the License. ${asm.version} + + org.apache.commons + commons-lang3 + + + org.apache.commons commons-math3 + + com.google.guava guava diff --git a/flink-libraries/flink-cep-scala/pom.xml b/flink-libraries/flink-cep-scala/pom.xml index a613d44b154d7..81e519010abd0 100644 --- a/flink-libraries/flink-cep-scala/pom.xml +++ b/flink-libraries/flink-cep-scala/pom.xml @@ -52,12 +52,33 @@ under the License. + org.ow2.asm asm ${asm.version} + + + + org.scala-lang + scala-reflect + provided + + + + org.scala-lang + scala-library + provided + + + + org.scala-lang + scala-compiler + provided + + diff --git a/flink-libraries/flink-gelly-examples/pom.xml b/flink-libraries/flink-gelly-examples/pom.xml index 9b90b04306b2d..28c7c671dfc35 100644 --- a/flink-libraries/flink-gelly-examples/pom.xml +++ b/flink-libraries/flink-gelly-examples/pom.xml @@ -61,6 +61,20 @@ ${project.version} + + + + org.slf4j + slf4j-api + compile + + + com.google.code.findbugs + jsr305 + compile + + diff --git a/flink-libraries/flink-gelly-scala/pom.xml b/flink-libraries/flink-gelly-scala/pom.xml index 08aeace97b4a2..69a7bfb4ee57c 100644 --- a/flink-libraries/flink-gelly-scala/pom.xml +++ b/flink-libraries/flink-gelly-scala/pom.xml @@ -34,12 +34,28 @@ under the License. jar + + org.apache.flink flink-scala_2.10 ${project.version} - provided + provided + + + + org.apache.flink + flink-clients_2.10 + ${project.version} + provided + + + + org.apache.flink + flink-gelly_2.10 + ${project.version} + @@ -47,16 +63,25 @@ under the License. asm ${asm.version} + + + - org.apache.flink - flink-clients_2.10 - ${project.version} - provided + org.scala-lang + scala-reflect + provided + - org.apache.flink - flink-gelly_2.10 - ${project.version} + org.scala-lang + scala-library + provided + + + + org.scala-lang + scala-compiler + provided diff --git a/flink-libraries/flink-gelly/pom.xml b/flink-libraries/flink-gelly/pom.xml index ff39298518d7e..7feb177344547 100644 --- a/flink-libraries/flink-gelly/pom.xml +++ b/flink-libraries/flink-gelly/pom.xml @@ -52,6 +52,12 @@ under the License. provided + + org.apache.commons + commons-lang3 + provided + + diff --git a/flink-libraries/flink-ml/pom.xml b/flink-libraries/flink-ml/pom.xml index 83a53b782374b..c1a9a392b1b0b 100644 --- a/flink-libraries/flink-ml/pom.xml +++ b/flink-libraries/flink-ml/pom.xml @@ -50,6 +50,32 @@ 0.12 + + + + org.scala-lang + scala-reflect + provided + + + + org.scala-lang + scala-library + provided + + + + org.scala-lang + scala-compiler + provided + + + + org.apache.commons + commons-math3 + provided + + diff --git a/flink-libraries/pom.xml b/flink-libraries/pom.xml index c0698c87dbe6c..31f6e03ff6ba4 100644 --- a/flink-libraries/pom.xml +++ b/flink-libraries/pom.xml @@ -43,4 +43,22 @@ under the License. flink-cep flink-cep-scala + + + + + + org.slf4j + slf4j-api + provided + + + com.google.code.findbugs + jsr305 + provided + + + diff --git a/flink-metrics/pom.xml b/flink-metrics/pom.xml index 629c50db0ee63..90785b4c9e3b1 100644 --- a/flink-metrics/pom.xml +++ b/flink-metrics/pom.xml @@ -41,4 +41,22 @@ under the License. flink-metrics-jmx flink-metrics-statsd + + + + + + org.slf4j + slf4j-api + provided + + + com.google.code.findbugs + jsr305 + provided + + + diff --git a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml b/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml index 57f3e25c94b7c..dbf0a59330034 100644 --- a/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml +++ b/flink-quickstart/flink-quickstart-java/src/main/resources/archetype-resources/pom.xml @@ -31,6 +31,8 @@ under the License. UTF-8 1.2-SNAPSHOT + 1.7.7 + 1.2.17 @@ -72,6 +74,7 @@ under the License. --> + org.apache.flink flink-java @@ -87,15 +90,31 @@ under the License. flink-clients_2.10 ${flink.version} + + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + log4j + log4j + ${log4j.version} + + build-jar + false + org.apache.flink @@ -115,6 +134,17 @@ under the License. ${flink.version} provided + + org.slf4j + slf4j-log4j12 + provided + + + log4j + log4j + ${log4j.version} + provided + @@ -191,6 +221,8 @@ under the License. versions of these dependencies. --> + + log4j:log4j org.scala-lang:scala-library org.scala-lang:scala-compiler org.scala-lang:scala-reflect diff --git a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml b/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml index 24225f6c0159a..1eae745cc224d 100644 --- a/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml +++ b/flink-quickstart/flink-quickstart-scala/src/main/resources/archetype-resources/pom.xml @@ -46,6 +46,8 @@ under the License. UTF-8 1.2-SNAPSHOT + 1.7.7 + 1.2.17 + org.apache.flink flink-scala_2.10 @@ -88,6 +91,19 @@ under the License. flink-clients_2.10 ${flink.version} + + + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + + + log4j + log4j + ${log4j.version} + @@ -116,6 +132,17 @@ under the License. ${flink.version} provided + + org.slf4j + slf4j-log4j12 + provided + + + log4j + log4j + ${log4j.version} + provided + @@ -196,6 +223,7 @@ under the License. --> + log4j:log4j org.scala-lang:scala-library org.scala-lang:scala-compiler org.scala-lang:scala-reflect diff --git a/flink-runtime/pom.xml b/flink-runtime/pom.xml index e522d77d49305..4a35304e4d3d2 100644 --- a/flink-runtime/pom.xml +++ b/flink-runtime/pom.xml @@ -56,6 +56,11 @@ under the License. ${project.version} + + org.apache.commons + commons-lang3 + + commons-cli commons-cli diff --git a/flink-scala/pom.xml b/flink-scala/pom.xml index 88f49e59514f2..3777de5d35a21 100644 --- a/flink-scala/pom.xml +++ b/flink-scala/pom.xml @@ -44,12 +44,6 @@ under the License. flink-java ${project.version} - - - org.apache.flink - flink-optimizer_2.10 - ${project.version} - org.scala-lang diff --git a/flink-shaded-hadoop/pom.xml b/flink-shaded-hadoop/pom.xml index d1c8d494547ee..b01e80529d58a 100644 --- a/flink-shaded-hadoop/pom.xml +++ b/flink-shaded-hadoop/pom.xml @@ -38,15 +38,6 @@ under the License. flink-shaded-hadoop2 - - - - com.google.code.findbugs - jsr305 - provided - - - include-yarn-tests diff --git a/pom.xml b/pom.xml index 9676976602778..7e616f7564c58 100644 --- a/pom.xml +++ b/pom.xml @@ -91,7 +91,6 @@ under the License. 1C true log4j-test.properties - 1.7.7 18.0 2.3-custom 1.7 @@ -125,35 +124,21 @@ under the License. 1.2-SNAPSHOT - - - com.google.code.findbugs - jsr305 - - - - org.apache.commons - commons-lang3 - 3.3.2 - + + org.slf4j slf4j-api - ${slf4j.version} + - org.slf4j - slf4j-log4j12 - ${slf4j.version} + com.google.code.findbugs + jsr305 - - log4j - log4j - 1.2.17 - + junit @@ -197,6 +182,7 @@ under the License. + org.apache.avro From 77fa5396bdc7e56fccaffb0111fb36b222e87efe Mon Sep 17 00:00:00 2001 From: Greg Hogan Date: Thu, 15 Dec 2016 15:49:07 -0500 Subject: [PATCH 2/3] [FLINK-4861] [build] Package optional project artifacts Package the Flink connectors, metrics, and libraries into subdirectories of a new opt directory in the release/snapshot tarballs. This closes #3014 --- flink-dist/pom.xml | 81 ++++++++++++++++- flink-dist/src/main/assemblies/opt.xml | 106 ++++++++++++++++++++++ flink-libraries/flink-gelly-scala/pom.xml | 34 +++++-- flink-libraries/flink-ml/pom.xml | 19 ++++ 4 files changed, 231 insertions(+), 9 deletions(-) create mode 100644 flink-dist/src/main/assemblies/opt.xml diff --git a/flink-dist/pom.xml b/flink-dist/pom.xml index 93feec623c96f..a43ac01fcdaa5 100644 --- a/flink-dist/pom.xml +++ b/flink-dist/pom.xml @@ -137,7 +137,72 @@ under the License. flink-yarn_2.10 ${project.version} - + + + + + + org.apache.flink + flink-metrics-dropwizard + ${project.version} + + + + org.apache.flink + flink-metrics-ganglia + ${project.version} + + + + org.apache.flink + flink-metrics-graphite + ${project.version} + + + + org.apache.flink + flink-metrics-statsd + ${project.version} + + + + + + org.apache.flink + flink-cep_2.10 + ${project.version} + + + + org.apache.flink + flink-cep-scala_2.10 + ${project.version} + + + + org.apache.flink + flink-gelly_2.10 + ${project.version} + + + + org.apache.flink + flink-gelly-scala_2.10 + ${project.version} + + + + org.apache.flink + flink-gelly-examples_2.10 + ${project.version} + + + + org.apache.flink + flink-ml_2.10 + ${project.version} + + @@ -277,6 +342,20 @@ under the License. false + + opt + package + + single + + + + src/main/assemblies/opt.xml + + flink-${project.version}-bin + false + + diff --git a/flink-dist/src/main/assemblies/opt.xml b/flink-dist/src/main/assemblies/opt.xml new file mode 100644 index 0000000000000..c6dc30709c994 --- /dev/null +++ b/flink-dist/src/main/assemblies/opt.xml @@ -0,0 +1,106 @@ + + + + opt + + dir + + + true + flink-${project.version} + + + + + ../flink-libraries/flink-cep/target/flink-cep_2.10-${project.version}.jar + opt/ + flink-cep_2.10-${project.version}.jar + 0644 + + + + ../flink-libraries/flink-cep-scala/target/flink-cep-scala_2.10-${project.version}.jar + opt/ + flink-cep-scala_2.10-${project.version}.jar + 0644 + + + + + ../flink-libraries/flink-gelly/target/flink-gelly_2.10-${project.version}.jar + opt/ + flink-gelly_2.10-${project.version}.jar + 0644 + + + + ../flink-libraries/flink-gelly-examples/target/flink-gelly-examples_2.10-${project.version}.jar + opt/ + flink-gelly-examples_2.10-${project.version}.jar + 0644 + + + + ../flink-libraries/flink-gelly-scala/target/flink-gelly-scala_2.10-${project.version}-jar-with-dependencies.jar + opt/ + flink-gelly-scala_2.10-${project.version}.jar + 0644 + + + + + ../flink-libraries/flink-ml/target/flink-ml_2.10-${project.version}-jar-with-dependencies.jar + opt/ + flink-ml_2.10-${project.version}.jar + 0644 + + + + + ../flink-metrics/flink-metrics-dropwizard/target/flink-metrics-dropwizard-${project.version}-jar-with-dependencies.jar + opt/ + flink-metrics-dropwizard-${project.version}.jar + 0644 + + + + ../flink-metrics/flink-metrics-ganglia/target/flink-metrics-ganglia-${project.version}-jar-with-dependencies.jar + opt/ + flink-metrics-ganglia-${project.version}.jar + 0644 + + + + ../flink-metrics/flink-metrics-graphite/target/flink-metrics-graphite-${project.version}-jar-with-dependencies.jar + opt/ + flink-metrics-graphite-${project.version}.jar + 0644 + + + + ../flink-metrics/flink-metrics-statsd/target/flink-metrics-statsd-${project.version}.jar + opt/ + flink-metrics-statsd-${project.version}.jar + 0644 + + + diff --git a/flink-libraries/flink-gelly-scala/pom.xml b/flink-libraries/flink-gelly-scala/pom.xml index 69a7bfb4ee57c..ee4549c293a48 100644 --- a/flink-libraries/flink-gelly-scala/pom.xml +++ b/flink-libraries/flink-gelly-scala/pom.xml @@ -56,14 +56,6 @@ under the License. ${project.version} - - - org.ow2.asm - asm - ${asm.version} - - @@ -83,6 +75,13 @@ under the License. scala-compiler provided + + + org.ow2.asm + asm + ${asm.version} + provided + @@ -216,6 +215,25 @@ under the License. ${project.basedir}/../../tools/maven/scalastyle-config.xml + + + + maven-assembly-plugin + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + diff --git a/flink-libraries/flink-ml/pom.xml b/flink-libraries/flink-ml/pom.xml index c1a9a392b1b0b..e6b8530f8d84f 100644 --- a/flink-libraries/flink-ml/pom.xml +++ b/flink-libraries/flink-ml/pom.xml @@ -181,6 +181,25 @@ ${project.basedir}/../../tools/maven/scalastyle-config.xml + + + maven-assembly-plugin + 2.4 + + + jar-with-dependencies + + + + + make-assembly + package + + single + + + + From 0267449d7248e1717dfea2d294910186cf22cbdd Mon Sep 17 00:00:00 2001 From: Stephan Ewen Date: Mon, 19 Dec 2016 21:50:31 +0100 Subject: [PATCH 3/3] [FLINK-4861] [build] Remove gelly-examples from 'opt' assembly --- flink-dist/src/main/assemblies/opt.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/flink-dist/src/main/assemblies/opt.xml b/flink-dist/src/main/assemblies/opt.xml index c6dc30709c994..3622ece29d348 100644 --- a/flink-dist/src/main/assemblies/opt.xml +++ b/flink-dist/src/main/assemblies/opt.xml @@ -52,13 +52,6 @@ 0644 - - ../flink-libraries/flink-gelly-examples/target/flink-gelly-examples_2.10-${project.version}.jar - opt/ - flink-gelly-examples_2.10-${project.version}.jar - 0644 - - ../flink-libraries/flink-gelly-scala/target/flink-gelly-scala_2.10-${project.version}-jar-with-dependencies.jar opt/