Linux和Windows环境下编译presto
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>
如果是从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仓库设置:
<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
下安装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>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
- 点赞
- 收藏
- 关注作者
评论(0)