将Flink导入IDE
以下部分描述了如何将Flink项目导入IDE以开发Flink本身。有关编写Flink程序的信息,请参阅Java API和Scala API快速入门指南。
注意:每当IDE中的某些内容无效时,请首先尝试使用Maven命令行,mvn clean package -DskipTests
因为它可能是您的IDE有错误或未正确设置。
制备
首先,请先从我们的某个存储库中查看Flink源代码,例如:
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
导入Flink
- 启动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-core
,flink-optimizer
和flink-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(见上文)