2009年1月17日

Sakai開發備忘錄【安裝環境設定篇】

Sakai最新的穩定版本是2.5.3(24 Sep. 2008 released),雖然Sakai 2.5發行以來,已經歷過很多的問題修正,但是在實際應用上,發現仍有許多明顯的問題待克服。這些問題造成某些功能對使用者而言,根本是無法運作,特別是像中文字這種DBCS(雙位元組字元集)的編碼處理,撰寫Sakai源碼的開發者大多是外國人,即便是系統整體已經採用UTF-8編碼,但在撰寫應用代碼時,仍有許多細節被忽略。

除了將問題回報給官方、等待下一次的發行有提供修正外,著手修改源碼也是許多Sakai參與團體選擇的方式。像Sakai這種規模較複雜的開放源碼軟體,即便軟體取得成本為零,但導入時必須考慮各項需求的客製、支援成本,許多時候還必須花費高額的顧問費用,才有機會讓資訊系統正式上線,總成本不見得亞於商業軟體,許多時候甚至高出許多,所以採用Sakai作為校園的教學系統,不能把成本當作主要的考量,擁有完整原始碼與修改權力,才是導入開源軟體的價值所在。

開發及修改Sakai的程式,需要投入足夠的專業人力,即使Sakai是使用Java開發,而國內使用Java的技術人員也很多,但是Sakai採用許多輕量(lightweight)元件組成的架構,開發人員不僅需要熟悉Java程式語言、JSP動態網頁的基礎,還必須瞭解Spring framework、JSF、Hibernate…等技術的運用,甚至在編譯佈署用的Maven也比一般常用的Ant進階許多。

Sakai官方目前已經提供相關開發文件:
同時也提供以下Step by Step的教學影片(MOV格式):
Development Environment Setup Walkthrough」提供大部份開發者入門須知,若還沒有實際從源碼安裝Sakai的經驗,建議先從「Install Guide - Source Install」開始,熟悉環境變數的設定與Maven的使用後,建立開發環境的過程就會更得心應手。

在環境變數的設定,必須注意Java參數中的記憶體調校(Xms、Xmx、XX:MaxPermSize),記憶體的設定需要參考機器的實際記憶體容量,預設的設定很容易在運作一段時間後就發生OutOfMemory(記憶體不足)的問題,需要調整到合適的設定(例如機器擁有2GB+的記憶體,則可以將上限設為1024MB)。

按照文件的說明,直到啟動Eclipse為止,只要仔細照著說明做一遍,應該都不會遇到太多問題。但是在Eclipse啟動後,就會遇到許多狀況。例如我們發現從官方下載的Sakai 2.5.2 source,解壓縮後的資料夾,如果只在Eclipse去import這個資料夾,會發現只有找到「Base」一個project,必須再繼續往下選擇sakai-src底下的子目錄,才能夠找到其他project。

在Sakai source下的每個Tools或API,都是獨立的Eclipse project,但彼此之間又有關聯性,例如syllabus是一個project,但我們也必須同時加入user-api、content-api等其他project,在開啟編輯原始碼時,才能夠通過package宣告的檢查。

如果還沒有執行過「mvn clean install」指令,在使用Eclipse匯入project時,許多需要的JAR檔案會找不到,這是因為Sakai的目錄下本身並不包含Library的JAR檔案,而是由Maven自動下載到「~/.m2/repository」資料夾下。Sakai底下的專案,設定Build path的作法通常是設定M2_REPO的classpath變數(在Windows->Preferences->Java->Build Path->Classpath Variables),然後在project的Build path中去引入M2_PATH底下的某些JAR檔。

◎ 我們希望能夠建立在台灣地區推廣Sakai的非官方社群,包括協助官方加速繁體中文語系的翻譯、修正中文字碼不相容問題、開發符合國內使用習慣的擴充功能,如果您(學校、工商團體、個人)有興趣,歡迎與我們連繫(lyhcode小老鼠gmail.com)。

7 則留言:

  1. ㄟ…宏哥~~~
    泥沒先介紹一下啥是煞凱依,幫他打一下知名度,恐怖大家不只是看不懂,而是看一點就興致缺缺囉~~~^^

    回覆刪除
  2. 這個嘛...等中文社群成立後...就會有詳細的"中文入門指南"了:X

    回覆刪除
  3. 最近接觸到SAKAI
    想把source code版建立起來
    但是官方的安裝說明
    到了BUILD SAKAI那部份
    我就看不懂了

    可以給我一些幫助嗎 感激不盡

    回覆刪除
  4. BUILD是用以下的指令
    mvn clean install sakai:deploy

    前提是JDK 5/MAVEN 2/TOMCAT 5.5/SAKAI 2.5的安裝及環變變數都要正確

    如果mvn指令過不了
    就必須從錯誤訊息判斷原因了

    回覆刪除
  5. MVN是啥?!
    天文學嗎?!

    回覆刪除
  6. 我覺得應該都設定對了
    但是還是Build Failed

    可以請問一下你用的
    JDK 5/MAVEN 2/TOMCAT 5.5/SAKAI 2.5
    這些軟體的詳細版本嗎

    我個人用的是
    JDK 1.5.0_06
    Maven 2.0.6
    TOMCAT 5.5.26
    SAKAI 2.5.4

    謝謝~

    回覆刪除
  7. 版主最近不在家唷~~~
    請隨便逛逛~~~
    咻~~~

    回覆刪除

lyhcode by lyhcode
歡迎轉載,請務必註明出處!