Flink源码编译:运行示例代码时绕过test编译

背景

跑 flink-examples,各种报错,各种Test module之间依赖找不到,及其头大!
Flink源码编译:运行示例代码时绕过test编译_第1张图片

疑惑

寻找解决办法时,心中不禁冒出三个问题:

  1. 为什么跑 flink-examples的时候,Intellij idea会自动build一些无关紧要的代码 ?
  2. build是否可以绕过Test,直接运行当前flink-exmaples中的代码?
  3. build与maven compile的区别是什么?

答案

针对以上3个问题,一一解答:

  1. 跑Intellij idea时,默认会强制进行build,包括一些无关代码,如图:
    Flink源码编译:运行示例代码时绕过test编译_第2张图片
  2. build本质上是在调用javac,目前来看,无法绕过test,会全盘编译,浪费很多时间。
  3. 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示例了!

你可能感兴趣的:(Maven,Flink)