Flink源码编译:运行示例代码时绕过test编译
背景
跑 flink-examples,各种报错,各种Test module之间依赖找不到,及其头大!
疑惑
寻找解决办法时,心中不禁冒出三个问题:
- 为什么跑 flink-examples的时候,Intellij idea会自动build一些无关紧要的代码 ?
- build是否可以绕过Test,直接运行当前flink-exmaples中的代码?
- build与maven compile的区别是什么?
答案
针对以上3个问题,一一解答:
- 跑Intellij idea时,默认会强制进行build,包括一些无关代码,如图:
- build本质上是在调用javac,目前来看,无法绕过test,会全盘编译,浪费很多时间。
- build和mvn compile本质上都是javac的封装,但是mvn compile做了更多事情,比如
mvn compile -Dmaven.test.skip=true
可以绕过test的,避免编译一些无关紧要的测试类
结论
基于以上思考,可以在项目根目录下,对flink-examples模块单独进行手动编译mvn clean compile -pl flink-examples -am
,生成字节码,然后将Before launch :Build, Activate tool window
配置下的Build删除掉即可,然后就可以秒起example示例了!