Skip to content

Commit

Permalink
[FLINK-24019][build][dist] Package Scala APIs separately
Browse files Browse the repository at this point in the history
  • Loading branch information
zentol authored Oct 22, 2021
1 parent 7b63482 commit 86c9694
Show file tree
Hide file tree
Showing 7 changed files with 175 additions and 17 deletions.
125 changes: 125 additions & 0 deletions flink-dist-scala/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.apache.flink</groupId>
<artifactId>flink-parent</artifactId>
<version>1.15-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>

<artifactId>flink-dist-scala_${scala.binary.version}</artifactId>
<name>Flink : Dist-Scala</name>

<dependencies>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<!-- transitive Flink dependencies are provided at runtime -->
<groupId>org.apache.flink</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<!-- transitive Flink dependencies are provided at runtime -->
<groupId>org.apache.flink</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<!-- Provided by flink-dist -->
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<!-- Provided by flink-dist -->
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<!-- Provided by flink-dist -->
<groupId>com.twitter</groupId>
<artifactId>chill-java</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>shade-flink</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<!-- Explicitly include Flink APIs and Scala.
Transitive dependencies are bundled by _either_ flink-dist(-scala),
and we need to make sure no dependency required for the Scala-free
operation of Flink is bundled in flink-dist-scala. -->
<include>org.apache.flink:*</include>
<include>org.scala-lang*:*</include>
<include>com.twitter:chill_${scala.binary.version}</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.4</version><!--$NO-MVN-MAN-VER$-->
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
16 changes: 16 additions & 0 deletions flink-dist-scala/src/main/resources/META-INF/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
flink-dist-scala
Copyright 2014-2021 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This project bundles the following dependencies under the Apache Software License 2.0 (http://www.apache.org/licenses/LICENSE-2.0.txt)

- com.twitter:chill_2.12:0.7.6

The following dependencies all share the same BSD license which you find under licenses/LICENSE.scala.

- org.scala-lang:scala-compiler:2.12.7
- org.scala-lang:scala-library:2.12.7
- org.scala-lang:scala-reflect:2.12.7
- org.scala-lang.modules:scala-xml_2.12:1.0.6
32 changes: 23 additions & 9 deletions flink-dist/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,19 +43,20 @@ under the License.

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-core</artifactId>
<artifactId>flink-dist-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<artifactId>flink-core</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_${scala.binary.version}</artifactId>
<artifactId>flink-java</artifactId>
<version>${project.version}</version>
</dependency>

Expand Down Expand Up @@ -89,12 +90,6 @@ under the License.
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-metrics-core</artifactId>
Expand Down Expand Up @@ -423,6 +418,25 @@ under the License.
<!-- end test dependencies -->
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<!-- Provided by flink-dist-scala -->
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- Provided by flink-dist-scala -->
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
<version>${project.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>

<profiles>
<profile>
<!-- Creates/Removes the 'build-target' symlink in the root directory (only Unix systems) -->
Expand Down
10 changes: 10 additions & 0 deletions flink-dist/src/main/assemblies/bin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ under the License.
<file>
<source>target/flink-dist_${scala.binary.version}-${project.version}.jar</source>
<outputDirectory>lib/</outputDirectory>
<!-- The jar itself is actually scala-free, so we can remove the scala suffix for clarity. -->
<destName>flink-dist-${project.version}.jar</destName>
<fileMode>0644</fileMode>
</file>

Expand All @@ -69,6 +71,14 @@ under the License.
<fileMode>0644</fileMode>
</file>

<!-- Scala APIs -->
<file>
<source>../flink-dist-scala/target/flink-dist-scala_${scala.binary.version}-${project.version}.jar</source>
<outputDirectory>lib/</outputDirectory>
<destName>flink-scala_${scala.binary.version}-${project.version}.jar</destName>
<fileMode>0644</fileMode>
</file>

<!-- Table/SQL Uber JAR -->
<file>
<source>../flink-table/flink-table-uber/target/flink-table-uber_${scala.binary.version}-${project.version}.jar</source>
Expand Down
8 changes: 0 additions & 8 deletions flink-dist/src/main/resources/META-INF/NOTICE
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ This project bundles the following dependencies under the Apache Software Licens
- com.ververica:frocksdbjni:6.20.3-ververica-1.0
- com.google.code.findbugs:jsr305:1.3.9
- com.twitter:chill-java:0.7.6
- com.twitter:chill_2.12:0.7.6
- commons-cli:commons-cli:1.4
- commons-collections:commons-collections:3.2.2
- commons-io:commons-io:2.11.0
Expand All @@ -27,13 +26,6 @@ See bundled license files for details.
- com.esotericsoftware.kryo:kryo:2.24.0
- com.esotericsoftware.minlog:minlog:1.2

The following dependencies all share the same BSD license which you find under licenses/LICENSE.scala.

- org.scala-lang:scala-compiler:2.12.7
- org.scala-lang:scala-library:2.12.7
- org.scala-lang:scala-reflect:2.12.7
- org.scala-lang.modules:scala-xml_2.12:1.0.6

This project bundles the following dependencies under the MIT/X11 license.
See bundled license files for details.

Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ under the License.
<module>flink-quickstart</module>
<module>flink-contrib</module>
<module>flink-dist</module>
<module>flink-dist-scala</module>
<module>flink-metrics</module>
<module>flink-yarn</module>
<module>flink-yarn-tests</module>
Expand Down

0 comments on commit 86c9694

Please sign in to comment.