Linux和Windows环境下编译presto

网友投稿 1030 2022-05-30

Presto编译:

Presto版本:presto-316

源码-:https://github.com/prestosql/presto

如果是直接从github上下载的源码压缩包,则需要做如下配置:

1. 进入源码根目录  2. 修改pom.xml     在元素中,添加如下配置:                  pl.project13.maven             git-commit-id-plugin                                  true                 

如果是从github上clone的代码,则不需要做上述配置。

编译环境要求:

## Requirements   * Mac OS X or linux  * Java 8 Update 161 or higher (8u161+), 64-bit. Both Oracle JDK and OpenJDK are supported.  * Maven 3.3.9+ (for building)  * Python 2.4+ (for running with the launcher script)

可以看到官方说明是不支持在Windows下编译的,同时对JDK、Maven、Python的版本有要求。JDK、Maven、Python的安装这里就不具体描述了,网上很多资料。

Maven仓库设置:

Linux和Windows环境下编译presto

                            mirror                  *                  cmc-cd-mirror                  http://cmc-cd-mirror.rnd.huawei.com/maven/           

Linux环境下编译:

进入源码根目录,执行以下命令进行编译:

mvn clean package -DskipTests

构建好的presto安装包在presto-server/target目录下:presto-server-316.tar.gz

Windows下编译:

Windows下安装JDK、Maven、Python的过程这里也不具体描述了,网上很多资料。

Windows下编译presto需要做一些额外的配置:

1、修改presto-maven-plugin插件

下载presto-maven-plugin源码:https://github.com/prestosql/presto-maven-plugin/releases/tag/presto-maven-plugin-6

将源码导入到Intellij Idea中,修改ServiceDescriptorGenerator.java源文件中的第124行:

String className = classPath.substring(0, classPath.length() - 6).replace('/', '.');

将分隔符'/'替换成File.separatorChar:

String className = classPath.substring(0, classPath.length() - 6).replace(File.separatorChar, '.');

重新编译构建:

mvn clean package -DskipTests

生成的jar包在源码根目录的target目录下:presto-maven-plugin-6.jar,用该jar包替换掉maven仓库中的jar包:repository\io\prestosql\presto-maven-plugin\6\presto-maven-plugin-6.jar

博客附件已上传了修改后的presto-maven-plugin-6包,可以直接用于替换。

2、配置类unix环境

presto编译过程中会用到Linux下的一些命令,比如chmod等,如果Windows中已经安装了Git和Git Bash,因Git Bash带有一些类Unix的命令,所以只需要设置Windows的环境变量Path,加上:%GIT_HOME%\usr\bin即可,其中GIT_HOME是Git的安装路径,一般默认安装路径为:C:\Program Files\Git。

如果没有安装Git,可以在rTools上下载安装一下。

如果使用了Intellij Idea,配置好环境变量之后,需要重启Intellij Idea才能生效。

3、修改pom.xml文件

将presto-docs这个module注释掉,如下所示:

该module在Windows下会报错,原因暂时不明。presto-docs只是生成presto的相关文档,对源码阅读和调试不影响,所以可以注释掉。

4、编译构建

可以使用Intellij Idea导入源码工程后进行编译,编译使用的maven参数:clean package -DskipTests

也可以打开Windows的CMD,然后进入源码根目录,执行以下命令进行编译:

mvn clean package -DskipTests

构建好的presto安装包在presto-server\target目录下:presto-server-316.tar.gz

附件: presto-maven-plugin-6.rar 11.26KB 下载次数:48次

FusionInsight EI企业智能

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Manticore search加一个中文分词
下一篇:浅析微信小程序响应式像素实现原理
相关文章