30.apollo源代碼在mac下編譯
阿新 • • 發佈:2017-07-25
apollo
一. Apollo簡介
Apache Apollo是一個代理服務器,其是在ActiveMQ基礎上發展而來的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多種協議。
官網鏈接
自己使用Apollo主要是用它做mqtt服務器。
二. 源代碼下載
代碼下載編譯官方指導
使用svn checkout代碼:
svn co http://svn.apache.org/repos/asf/activemq/activemq-apollo/trunk apollo
三. 環境準備
JDK1.7
JDK官網下載
scala 2.12.2
scala安裝教程
scala官網下載
mvn3.5.0
maven官網
四. 編譯
1. 進入到源代碼目錄
2.增加內存配置,因為Apollo編譯很耗內存 export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
3.編譯 mvn -Dtest=false install 跳過測試步驟 apollo編譯過程中會執行測試過程,比如: ------------------------------------------------------ T E S T S ------------------------------------------------------- Running org.apache.activemq.apollo.openwire.codec.BooleanStreamTest Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.825 sec Running org.apache.activemq.apollo.openwire.test.OpenwireBDBParallelTest ParallelJUnitRunner using up to 8 threads to execute parallel tests.
官方編譯指導文檔
五. 編譯生成目錄
Apollo源代碼/apollo-distro/target
六. 編譯出現的問題:
1.JDK1.8和scala不能兼容
編譯scala程序時出現 is broken錯誤,如下:
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/jre/lib/rt.jar(java/lang/reflect/AnnotatedElement.class)‘ is broken
可以把JDK改成1.7進行編譯
2.Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
在編譯之前執行
export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"
本文出自 “www.bogo.com” 博客,請務必保留此出處http://483181.blog.51cto.com/473181/1950769
30.apollo源代碼在mac下編譯