Linux和Windows环境下编译presto

举报
蛋黄 发表于 2020/07/07 15:42:41 2020/07/07
【摘要】 Presto编译:Presto版本:presto-316源码下载地址:https://github.com/prestosql/presto如果是直接从github上下载的源码压缩包,则需要做如下配置:1. 进入源码根目录 2. 修改pom.xml 在<build>的<pluginManagement>元素中,添加如下配置: <plugin> <groupI...

Presto编译

Presto版本:presto-316

源码下载地址:https://github.com/prestosql/presto

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

1. 进入源码根目录 
2. 修改pom.xml    
在<build>的<pluginManagement>元素中,添加如下配置:    
<plugin>        
    <groupId>pl.project13.maven</groupId>        
    <artifactId>git-commit-id-plugin</artifactId>        
    <configuration>            
        <skip>true</skip>        
    </configuration>    
</plugin>

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


编译环境要求:

## 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下编译的,同时对JDKMavenPython的版本有要求。JDKMavenPython的安装这里就不具体描述了,网上很多资料。


Maven仓库设置:

<mirrors>     
    <mirror>         
        <id>mirror</id>         
        <mirrorOf>*</mirrorOf>         
        <name>cmc-cd-mirror</name>         
        <url>http://cmc-cd-mirror.rnd.huawei.com/maven/</url>     
    </mirror> 
</mirrors>


Linux环境下编译:

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

 mvn clean package -DskipTests

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


Windows下编译:

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

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中已经安装了GitGit Bash,因Git Bash带有一些类Unix的命令,所以只需要设置Windows的环境变量Path,加上:%GIT_HOME%\usr\bin即可,其中GIT_HOMEGit的安装路径,一般默认安装路径为:C:\Program Files\Git

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

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

3、修改pom.xml文件

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

<!--module>presto-docs</module-->

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

4、编译构建

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

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

 mvn clean package -DskipTests

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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。