环境
Window10,内存:8G,处理器:i5-8500,64位
Maven配置
Maven版本:3.3.9
Settings.xml文件配置如下,因为有些包阿里云没有,故增加一个http://uk.maven.org/maven2地址的镜像。
<mirrors>
<mirror>
<id>UK</id>
<mirrorOf>central</mirrorOf>
<name>UK Central</name>
<url>http://uk.maven.org/maven2</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
编译过程
进入https://github.com/apache/flink/tree/release-1.8下载Flink1.8.0的版本到本地,然后进入Flink源码根目录。通过maven编译Flink,命令如下:mvn clean install -DskipTests -Dfast
会报如下类似错误:
.....
[ERROR] Failed to execute goal on project flink-mapr-fs: Could not resolve dependencies for project org.apache.flink:flink-mapr-fs:jar:1.6.2: Could not find artifact com.mapr.hadoop:maprfs:jar:5.2.1-mapr in nexus-osc
....
报错缺失flink-mapr-fs,需要手动下载安装。
解决方法:
1.下载maprfsjar包通过手动下载maprfs-5.2.1-mapr.jar包,下载地址地址:https://repository.mapr.com/nexus/content/groups/mapr-public/com/mapr/hadoop/maprfs/5.2.1-mapr/
2.手动安装手动安装缺少的包到本地仓库
mvn install:install-file -DgroupId=com.mapr.hadoop -DartifactId=maprfs -Dversion=5.2.1-mapr -Dpackaging=jar -Dfile=D:/maprfs-5.2.1-mapr.jar
3.继续编译
使用maven继续编译flink(可以排除刚刚已经安装的包)
mvn clean install -DskipTests -Dfast -rf :flink-mapr-fs
编译后继续报错和上述类似,报错缺失flink-s3-fs-presto,同样受到下载后安装,命令如下:
mvn install:install-file -DgroupId=com.facebook.presto -DartifactId=presto-hive -Dversion=0.187 -Dpackaging=jar -Dfile=D:\presto-hive-0.187.jar
然后继续编译:
mvn clean install -DskipTests -Dfast -rf :flink-s3-fs-presto
一般情况下,编译会一次通过,像上述报错是由于网络等不好导致,一些包下载不下来,手动下载安装即可。
Dependency Shading
Maven 3.3.x 构建必须分两步完成:首先在基本目录中,然后在分发项目中:
mvn clean install -DskipTests
cd flink-dist
mvn clean install
具体原因请参考Flink官网说明。
一次完整的Flink编译OK,后面可以进行源码学习等。