天天看點

OpenDayLight開發環境搭建OpenDayLight開發環境搭建

OpenDayLight開發環境搭建

  本文主要是介紹如何搭建一個eclipse下的OpenDayLight開發環境,eclipse的插件基本配置内容在OpenDayLight的官網上能找到(https://wiki.opendaylight.org/view/GettingStarted:_Eclipse)建議使用java1.7.55,maven選擇最新版本。Java,maven安裝不再贅述。

  下載下傳OpenDayLight源碼(https://github.com/opendaylight/controller)。對eclipse再進行一些配置:

      1.自己建立一個自己的代碼風格,其中選擇隻是用空格不使用tap;

      2.打開空格等字元的顯示,便于編碼排錯。

  解壓源碼,找到這個路徑下\opendaylight\distribution\opendaylight在指令行中使用mvn clean install建構項目,時間可能有點長。看到build success的時候就打開eclipse将對應項目導入。這些在油管上有一個視屏,一個前輩把視訊傳到了搜狐上連接配接如下http://my.tv.sohu.com/us/63305745/62808568.shtml,有條件的可以翻出去看原版。

  建構成功之後在以上路徑下就會有\opendaylight\distribution\opendaylight\target\distribution.opendaylight-osgipackage\opendaylight這樣的路徑下就有了run.bat檔案,建立個快捷方式,使用指令行執行,然後通路http://127.0.0.1;8080就可以看到odl的界面了。

  接下來就按照ping的模型實作odl給我們的範例https://wiki.opendaylight.org/view/Ping,第一步寫yang的資料結構,通過工具生成對應的讀取資料結構中方法的jar包(model-ping);第二步,建立plugin實作對相應資料的實際操作方法,這個插件做好後就可以通過接口對ping的方法進行通路了(ping.plugin);文中的第三步是寫一個用于北向接口調用的服務用于封裝第二步建立好的plugin(ping.service);第四步,就是實作真正的rest接口,使用的是javax.ws提供的服務接口(ping.northbound)。

  這時候正常情況就可以完成一個小案例的制作了,但是這個隻是在全指令行的狀态下建立的,并未使用eclipse。通過導入maven項目把四個項目導入進去eclipse。分别是:model-ping,ping.plugin,ping.northbound,ping.service。在ping的範例測試成功的前提下,以debug的方式運作run.bat檔案啟動odl,在eclipse中啟動遠端調試8000端口,就可以連上斷點調試了。

   關于出現的一些錯誤,一般開發的時候都會照貓畫虎,将ping的插件改寫為自己的插件,需要注意,當使用ping的插件提供北向接口northbound的時候如果這是ping子產品也存在會報錯“/controller/nb/v2/”路徑被使用,最快解決方案把ping子產品直接幹掉,重新開機odl就可以調試自己的子產品了。關于mave的問題,有時候要引用本地jar,需要将jar包添加到本地庫中參見http://www.20365.cn/article/44,我是用第一種方法然後就可以把包依賴管理好。在主項目就是distribution.opendaylight項目中和具體使用到的項目中都要添加依賴不然遠端調試會報找不到對應類的問題。

  不足之處,沒有通過項目自帶的osgi的target檔案實作本地調試。新手技術水準不夠,還在探索中。因為是遠端調試,需要将生成的jar包拷到distribution.opendaylight的plugin目錄下,還要修改檔案名,建議寫個python腳本,每次編譯之後把jar拷過去,等一下osgi的平台會自動加載更新jar包,調試還是挺友善的(沒辦法本地調試的最後選擇)。在複制jar包的過程中會有依賴關系,有時會發生某些類被鎖死的情況,重新開機odl就可以解決;同樣在調試ping.plugin子產品時會有比較長時間的延遲,建議如果是使用遠端調試的話代碼品質高一點,減少調試次數。

繼續閱讀