Flink源码学习(1)环境配置与下载代码
Java和maven
版本注意!!!
Java 1.8 Maven 3.8.6
Java和maven下载,设置环境变量
如果安装的过高就会遇到下面这样的情况
安装Java包
高级系统设置,在系统变量里面新建MAVEN_HOME然后设置路径,同理JAVA_HOME
然后在Path中设置%MAVEN_HOME%\bin和%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin
设置完毕后在CMD中输入
java -version
mvn -version
然后修改maven的settings文件,修改地址
<localRepository>D:\Env\Java\repo</localRepository>
并且设置mirror
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
然后设置支持的jdk版本
<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile>
IDEA配置
在settings中设置本地的maven和settings和repo的地址
Flink源码下载
如果通过git下载
,失败概率很大,因此改为从gitee下载
git clone https://gitee.com/apache/flink.git
下载完毕之后导入IDEA
此时会自动下载对应的依赖,在你的仓库里可以看到
编译打包
下载完代码到本地之后,执行
mvn clean package -DskipTests
DskipTests会便宜测试代码,但是不会执行测试用例
如果settings没有生效就会下载很慢,依次确认settings的mirror配置的对不对,IDEA的settings地址是否正确
如果生效了就会下载的很快,显示是ali的maven
预计跑半小时结束
如果你遇到了其他问题
Too many files with unapproved license:
这是由Apache Rat插件报告的许可证问题,你需要加上跳过检查的命令
mvn clean install -DskipTests -Drat.skip=true
如果你的IDEA继续报错
Unknown lifecycle phase ".skip=true". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy.
这个原因是IDEA的cmd没有很好的识别这条语句,解决方法:
mvn clean install -DskipTests '-Drat.skip=true'
本地运行
编译之后,我们就可以启动flink了,由于我们下载的代码是源代码,不是网上教程中常见的编译后产物,因此我们启动的路径与网上常见教程不同,进入flink-dist\target\flink-1.17-SNAPSHOT-bin\flink-1.17-SNAPSHOT\bin>目录下,我这里使用的是1.17版本。
然后执行
.\start-cluster.sh