将Flink导入IDE

以下部分描述了如何将Flink项目导入IDE以开发Flink本身。有关编写Flink程序的信息,请参阅Java APIScala API快速入门指南。

注意:每当IDE中的某些内容无效时,请首先尝试使用Maven命令行,mvn clean package -DskipTests因为它可能是您的IDE有错误或未正确设置。

制备

首先,请先从我们的某个存储库中查看Flink源代码,例如:

  1. git clone https://github.com/apache/flink.git

IntelliJ IDEA

关于如何设置IntelliJ IDEA IDE以开发Flink核心的简要指南。由于已知Eclipse存在混合Scala和Java项目的问题,因此越来越多的贡献者正在迁移到IntelliJ IDEA。

以下文档描述了使用Flink源设置IntelliJ IDEA 2016.2.5(https://www.jetbrains.com/idea/download/的步骤

安装Scala插件

IntelliJ安装设置提供安装Scala插件。如果未安装,请在导入Flink之前按照这些说明启用对Scala项目和文件的支持:

  • 转到IntelliJ插件设置(IntelliJ IDEA - >首选项 - >插件),然后单击“安装Jetbrains插件…”。
  • 选择并安装“Scala”插件。
  • 重启IntelliJ
  • 启动IntelliJ IDEA并选择“导入项目”
  • 选择Flink存储库的根文件夹
  • 选择“从外部模型导入项目”并选择“Maven”
  • 保存默认选项并单击“下一步”,直到您点击SDK部分。
  • 如果没有SDK,请创建一个左上角带有“+”符号的SDK,然后单击“JDK”,选择您的JDK主目录并单击“确定”。否则只需选择您的SDK。
  • 继续再次单击“下一步”并完成导入。
  • 右键单击导入的Flink项目 - > Maven - >生成源和更新文件夹。请注意,这将在您的本地Maven存储库中安装Flink库,即“/ home / -your-user- /.m2/repository/org/apache/flink/”。或者,mvn clean package -DskipTests还可以为IDE创建必要的文件,但不安装库。
  • 构建项目(构建 - >制作项目)

Checkstyle For Java

IntelliJ使用Checkstyle-IDEA插件支持IDE中的checkstyle。

  • 从IntelliJ插件存储库安装“Checkstyle-IDEA”插件。
  • 通过转到设置 - >其他设置 - > Checkstyle来配置插件。
  • 将“扫描范围”设置为“仅Java源(包括测试)”。
  • 在“Checkstyle Version”下拉列表中选择8.9,然后单击“应用”。这一步很重要,不要跳过它!
  • 在“配置文件”窗格中,使用加号图标添加新配置:
    • 将“描述”设置为“Flink”。
    • 选择“使用本地Checkstyle文件”,并将其指向"tools/maven/checkstyle.xml"存储库中。
    • 选中“相对于项目位置存储”框,然后单击“下一步”。
    • 将“checkstyle.suppressions.file”属性值配置为"suppressions.xml",然后单击“下一步”,然后单击“完成”。
  • 选择“Flink”作为唯一的活动配置文件,然后单击“应用”和“确定”。
  • Checkstyle现在会在编辑器中针对任何Checkstyle违规行为发出警告。安装插件后,您可以"tools/maven/checkstyle.xml"通过转到Scheme下拉框旁边的设置 - >编辑器 - >代码样式 - > Java - >齿轮图标直接导入例如,这将自动调整导入布局。

您可以通过打开Checkstyle工具窗口并单击“检查模块”按钮来扫描整个模块。扫描应报告没有错误。

注意一些模块没有完全被CheckStyle的,其中包括覆盖flink-coreflink-optimizerflink-runtime不过请确保您在这些模块中添加/修改的代码仍符合checkstyle规则。

Scala的Checkstyle

通过选择“设置” - >“编辑器” - >“检查”,然后搜索“Scala样式检查”,在Intellij中启用scalastyle。"tools/maven/scalastyle_config.xml"放在"<root>/.idea""<root>/project"目录中。

Eclipse

注意:根据我们的经验,由于Scala IDE 3.0.3捆绑的旧Eclipse版本的不足或者与Scala IDE 4.4.1中捆绑的Scala版本的版本不兼容,此设置不适用于Flink。

我们建议改用IntelliJ(见上文