首先從https://github.com/prestodb/presto把源碼 git clone下來,仔細閱讀一遍README
基本上按照README指示就可以順利完成編譯但是中間也有許多小坑
一、presto源碼的編譯
1、安裝JDK
README中說使用Java 8 Update 151 or higher (8u151+),最好直接使用Java 8 Update 151,higher (8u151+)指的是Java 8高於151的版本。筆者誤以爲高於Java 8的版本都可以,所以使用了最新版本的Java JDK,結果編譯中途出錯。
從官網下載指定版本的JDK,參看博客:https://www.cnblogs.com/ztone/p/10578640.html
2、安裝maven並設置
sudo apt-get install maven
通過whereis命令找到安裝目錄,在安裝目錄中找到config/settings.xml,進行編輯
替換成國內maven鏡像源,在 <mirrors> </mirrors>標籤之間插入:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
絕大多數依賴都可以通過國內鏡像源進行下載,速度很快,但是有個別依賴依然是從國外地址下載,可能導致後面的編譯失敗,所以爲了萬無一失,再配置好代理,在<proxies></proxies>標籤之間插入:
<proxy>
<id>ss</id>
<active>true</active>
<protocol>http</protocol>
<host>127.0.0.1</host>
<port>12333</port>
<nonProxyHosts>127.0.0.1</nonProxyHosts>
</proxy>
當然,需要修改成自己的代理服務信息
左後將此settings.xml文件拷貝到~/.m2/中
3、開始編譯
在presto文件夾中執行:
./mvnw clean install -DskipTests
第一次編譯會maven會下載相關依賴,速度會慢一些,之後的編譯就沒有下載依賴的開銷了。順利的話一次可以編譯成功。但是也可能因爲種種原因失敗。失敗之後可以再次運行上述命令重新編譯,但是這回花費重複編譯的時間。更優的做法是之編譯失敗部分代碼。方法是進入對應失敗的文件夾,然後
../mvnw clean install -DskipTests
這樣只會編譯失敗的單個文件中的代碼。
二、IntelliJ IDEA的配置
presto官方建議使用IntelliJ IDEA,但是IntelliJ是需要花money的,此處附贈破解IntelliJ IDEA的方法和踩過的坑。主要參考博客:
https://juejin.im/post/5df8a5a5e51d4557f0460990
這篇博客已經寫的很詳細了,但是還是會有一些坑。
首先從官網下載IntelliJ IDEA的軟件,Ubuntu下載:https://download.jetbrains.8686c.com/idea/ideaIU-2019.3.4.tar.gz
然後按照博客https://juejin.im/post/5df8a5a5e51d4557f0460990一步一步做,但是注意:
- 博客中以windows爲例,路徑是\,但是Linux下路徑是/
- 如果很不幸路徑設置錯了,將打不開IntelliJ。博客中的方案是刪除~/.IntelliJIdea2019.3 但實際上可以直接編輯~/.IntelliJIdea2019.3/config/idea64.vmoptions
- 註冊時有可能沒能自動檢測到註冊服務器,手動添加:http://fls.jetbrains-agent.com (參考博客中說的是添加http://jetbrains-license-server ,但是筆者並未成功)
- 依然有可能連不上,爲IntelliJ設置代理。File->Settings,搜索Proxy,如圖進行配置:
三、使用
按照源碼中的README,進行配置: