从官方Github仓库clone下来,并选择release-1.13.0的tag自然不必说。但Flink的源码库很大,为了能够更高效地使用硬件资源并提高编译效率,需要对编译内容进行调整。在实验中我只需要能够打包最基本的flink jar包,并拷贝到机器上去运行即可,因此只需考虑Flink Dist这个子项目,并且开启skip tests mode。
此外需要对Flink Dist的pom.xml文件进行一些裁剪。首先注释掉所有的example依赖:
其次我们只需要打包的jar中最核心的部分,注释掉assembly中不需要的部分:
然后我们进入src/main/assemblies/bin.xml,可以看到其实只依赖了四个需要本地编译的包:
分别执行这四个包的maven install即可:
然后我们执行Flink : Disk的maven package,在依赖已经下载完成的情况下,编译只需要20秒:
后续如果需要修改一些其他包如runtime的源码,应该将dist中的依赖改为provided,然后将修改过的包maven install就行了。