Flink相关的依赖:
<!-- java -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-java</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.11</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<!-- scala -->
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
需要注意,flink-java和flink-streaming-java_2.11依赖的scope都是provided(因为这些依赖集群上已经提供)
除了代码相关依赖,为了方便打包提交,可以通过如下插件把源码+依赖打包成一个Jar包:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<relocations>
</relocations>
</configuration>
</plugin>
该插件不仅可以打包出包含依赖的Jar包,还可以解决依赖冲突;假设你某些依赖的版本和Flink依赖的版本不兼容,你可以通过如上的relocation功能来解决冲突;