Linux和Windows環境下編譯presto
Presto編譯:
Presto版本:presto-316
源碼-:https://github.com/prestosql/presto
如果是直接從github上下載的源碼壓縮包,則需要做如下配置:
1.?進入源碼根目錄? 2.?修改pom.xml???? 在
如果是從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環境下編譯:
進入源碼根目錄,執行以下命令進行編譯:
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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。