1. 程式人生 > >30.apollo源代碼在mac下編譯

30.apollo源代碼在mac下編譯

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


三. 環境準備

  1. JDK1.7

    JDK官網下載

  2. scala 2.12.2

    scala安裝教程

    scala官網下載

  3. 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下編譯