记一次Flink1.8.0编译过程

环境

Window10,内存:8G,处理器:i5-8500,64位git

Maven配置

Maven版本:3.3.9
Settings.xml文件配置以下,由于有些包阿里云没有,故增长一个http://uk.maven.org/maven2地址的镜像。github

<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
会报以下相似错误:web

.....
[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/apache

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(能够排除刚刚已经安装的包)maven

mvn clean install -DskipTests -Dfast -rf :flink-mapr-fs

编译后继续报错和上述相似,报错缺失flink-s3-fs-presto,一样受到下载后安装,命令以下:svg

mvn install:install-file -DgroupId=com.facebook.presto -DartifactId=presto-hive -Dversion=0.187  -Dpackaging=jar  -Dfile=D:\presto-hive-0.187.jar

而后继续编译:oop

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,后面能够进行源码学习等。