一. 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
三. 環境準備
四. 編譯
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"