首先是环境准备,
请参考
源码编译Kylin(详细版)https://blog.csdn.net/weixin_42536586/article/details/108446512
补充几点:
1、最好在linux下编译,因为自带的sh脚本在windows下无法执行
2、使用jdk1.8,oracle官网最新是16,不要用。而且不要只安装jre,需要使用jdk
3、配置好JAVA_HOME指向jdk安装的目录
4、MAVEN的阿里源好多包不全,如果速度没问题,可以使用默认源。也就是把上文中的阿里源用<!-- -->标签注释掉
源文件准备:
大家做开发,习惯于从git上git clone源代码。
Kylin编译部署及汉化
这篇文档也是教大家git clone https://github.com/apache/kylin.git
但是,这样获得的源码是最新源代码。而我们实际应该使用的是各个release版本的源代码。
这些release版本的源代码,需要从http://archive.apache.org/dist/kylin找到对应版本的源代码下载。比如,我要编译针对hadoop的3.1.2版本,则下载
wget http://archive.apache.org/dist/kylin/apache-kylin-3.1.2/apache-kylin-3.1.2-source-release.zip
源码下载后,针对源码编译Kylin(详细版)
针对POM.XML修改以后的补充如下:
有可能从core-common起编译就失败。基本原因是以下两个:
1.对应子项目的POM.XML中缺乏必要的依赖项。
解决办法:在maven或阿里云的源中,查找依赖项的pom并补充进云
2.源代码有误,比如core-common中有一段代码,用的是configuration2包中类的方法,但源代码用的是configuration包中的类。
解决办法:适当修改源代码。
目前积累的修改有:
1.core-common
/src/test/java/org/apache/kylin/common/metrics/metrics2/StandaloneExample.javaStandalone.java
将
import org.apache.commons.configuration.SubsetConfiguration;
改为
import org.apache.commons.configuration2.SubsetConfiguration;
pom.xml中增加以下依赖项
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>com.melloware</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
2.stream-core
pom.xml
增加以下依赖
<!-- https://mvnrepository.com/artifact/org.apache.directory.api/api-util -->
<dependency>
<groupId>org.apache.directory.api</groupId>
<artifactId>api-util</artifactId>
<version>2.0.2</version>
</dependency>
3.hive-sources
pom.xml
增加以下依赖
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>