Open Source ERP iDempiere系統的開發環境建置

Open Source ERP iDempiere系統的開發環境建置

一、前言

Open Source社群的開發專案,多半是多人共同進行某項專案的開發。

因此版本控管就成了影響Open Source專案穩定度的最嚴重因素,和一般商業軟體系統開發專案不同的是Open Source專案的開發成員可能散佈在不同的地點,透過網際網路來共同開發專案。

因為專案成員並沒有商業合約的約束,專案開發完全靠專案成員的自律,對照之前的Compiere及Adempiere,我們可以完全瞭解為何之前的版本是如此紊亂,導致不容易安一套穩定運作的ERP系統環境。

但是,iDempierer則完全改善這個缺點,運用Bitcbucket提供的版本控管服務,iDempiere可以統一版本,將發行的穩定版本的原始程式碼加以控管,這樣一來,想利用iDempiere來導入ERP系統的社群成員,就有完整的原始程式碼來支援技術移轉的工作。

在『Open Source ERP–iDempiere安裝過程大解密』一文中,我已經詳細說明如何安裝一套可用的iDempiere系統,本文將針對如何建置對應的原始程式碼開發環境詳細說明。

二、系統需求

1. Eclipse開發工具。

2. Mercurial版本控制系統,Linux環境下有兩套版本控管工具:GitMercurial,因為iDempiere採用Mercurial,故以Mercurial來安裝。

3. MercurialEclipse用於Eclipse的Mercurial版本控制附加工具,但MercurialEclipse需要搭配Mercurial,故先安裝Mercurial,再安裝MercurialEclipse。

4. iDempiere原始程式碼。

三、系統安裝

這裏將逐步討論建置iDempiere開發環境的個各系統需求要件的安裝程序。

1. Eclipse開發工具

安裝Eclipse開發工具有兩方式,Linux套件中的開發工作站安裝,或是由Elipse官網下載安裝套件安裝。

從Eclipse官網下載安裝套件的好處是能夠取後最新版本的Eclipse,但需要對Linux平台的系統管理有一定程度的認識。

從LInux安裝套件中選擇開發工作安裝模式,可以在安裝完成Linux套件時,就享有Eclipse開發環境,但缺點是Eclipse版本會比較老舊。

我在安裝CentOS 6.4時選擇「Software Development Workstation」,就是為了不用在安裝完成CentOS後,還要再安裝Eclips,參見下圖CentOS安裝時的選擇:

0004

這樣CentOS安裝完成後,在系統功能表中就會包括Eclipse,如下圖紅框:

D0001

雖然,用Linux安裝套件中附的Eclipse,版本不是最新(由官網可知最新版是4.3版),但不用再考慮如何安裝Eclipse是優點,再說,有必要還是可以升級的。

因為本文的重點是如何建置iDempiere開發環境,所以,就不再詳細介紹如何獨立安裝Eclipse了。

2. Mercurial版本控制系統

2.1. iDempiere版本控管工具的選擇

Bitcbucket支援兩種版本控管工具:GitMercurial。iDempiere支援的是那一套版本控管工具呢?我們到iDempiere的原始程式碼下載網頁去看:

0002

由紅框可以連結到iDempiere的原始程式碼版本控制網頁

0003

我們點選上圖的紅框,出現下圖:

0004

可以確定是iDempiere原始程式碼的清單網頁,再點選上圖紅框中的[Clone]:

0005

可以看到一個像是HTTPS連結由hg開頭的指令碼「hg clone https://bitbucket.org/idempiere/idempiere」,而hg是Mercurial版本控制工具的指令,我們要安裝Mercurial版本控制工來配合iDempiere原始程式碼。

各位可能會問:

- Git版本控制工具的指令呢?就是git,所以,如果iDempiere是採用Git為版本控管工具,上述指令要改成「git clone https://bitbucket.org/idempiere/idempiere」。

- 將來iDempiere會不會改用Git?有可能,因為現在看起來,採用Git為版本控管工具的開發者比較多,而Mercurial可能會變成商業版本,有可能改成用Git。但目前,因為iDempiere是用Mercurial為版本控制工具,所以,還是乖乖安裝Mercurial。

2.2. Mercurial版本管工具下載

雖然從Mercurial官網下載的是最新版本2.6.3,如下圖:

0006

但,這個下載是需要python編譯程來完成安裝的原始程式碼版本,我另外找了一個CentOS RPM的版本,只是版本沒有那麼新,到Mercurial下載網頁,找到如下圖所示的下載點:

0007

將上圖紅框中所示的RPM檔案下載,然後執行如下的指令(粗體紅字部份):

[idempiere@erp ~]$ su -
密碼:
[root@erp ~]# cd /home/idempiere/下載
[root@erp 下載]# ls
adempiere.gtk.linux.x86_64            idempiereServer.gtk.linux.x86_64.zip
idempiereClient.gtk.linux.x86_64.zip  mercurial-2.2.2-1.el6.rfx.x86_64.rpm
idempiere.gtk.linux.x86_64
[root@erp 下載]# rpm -ivh mercurial-2.2.2-1.el6.rfx.x86_64.rpm
警告:mercurial-2.2.2-1.el6.rfx.x86_64.rpm: 表頭 V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
正在準備…             ########################################### [100%]
   1:mercurial              ########################################### [100%]
[root@erp 下載]# hg version
mercurial 分散式版本控制系統 (版本 2.2.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[root@erp 下載]# exit
logout
[idempiere@erp ~]$ hg version
mercurial 分散式版本控制系統 (版本 2.2.2)
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2012 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[idempiere@erp ~]$

因為我原來是以iDempiere帳帳登入下載,所以才會需要轉到超級使用者帳號模式下執行安裝程序,安裝完成後,用「hg version」指令來看看Mercurial能否正常作業。

3. MercurialEclipse用於Eclipse的Mercurial版本控制附加工具

因為是用Eclipse為開發工具,如果開發工具能夠直接和版本控制工具配合,下載與上傳程式版本,有助於開發團隊最終交付系統的穩定度。

Mercurial有個名稱為MercurialEclipse的Eclipse Plug-in工具,就可以讓Eclipse直接操作Mercurial版本控管工具,直接在Eclipse中進行程式版本控管。

但是這個MercurialEclipse工具,不能獨立運作,必須要配合Mercurial的安裝,所以,我們才會先安裝Mercurial,再安裝MercurialEclipse。

MercurialEclipse的下載點是:http://www.javaforge.com/project/HGE,如下圖;

0009

我們點選右下角紅框中的[Download Now],出現下圖:

0010

重點是上圖右邊中央紅框的連結點「http://cbes.javaforge.com/update」,目前我們先不點那個連結。

安裝MercurialEclipse,可以由Eclipse開發環境中完成,我們先執行Eclipse,到CentOS的系統功能表,如下圖:

0001

打開Eclipse,先跳出一個視窗:

0008

直接按[確定],進行Eclipse的主控台:

0012

點選Eclipse的[說明]功能表,如下圖:

0013

執行紅框中的「安裝新軟件(S)...」,出現下圖:

0014

點選右上角的「新增」,如下圖:

0015

給一個名稱,再把連結點「http://cbes.javaforge.com/update」貼到位置欄中,然後按「確定」,出現「安裝」視窗,如下圖。

0016

我們把上圖中的可安裝軟體清單打開,只要打開「MercurialEclipse」,然後勾選「MercurialEclipse」一項即可,另一項是給Windows用的,不用勾選,然後按「下一步」。

0017

再看一次要安裝的軟體清單對不對,對的話,按一下「下一步」。

0018

要不要接受授權,請點選「我接受授權合約中的條款」,主要是說不能當商業用途,按「完成」,開始進行安裝,安裝到一半會出現一個警告訊息,如下圖。

0019

是說沒有驗證,按「確定」即可,這很像是Windows環境中安裝沒有數位簽證的軟體時出現的警告訊息。

安裝繼續進行下去,完後時會詢問...

0020

請圖選「Restart Now」,把Eclipse重新啟動,以利MercurialEclipse啟用。

然後,我們就可以進行最後一個步驟了。

4. iDempiere原始程式碼

安裝好MercurialEclipse,我們就能夠運用Ecipse來「複製」(Clone)iDempiere的原始程式碼,,我們打開Eclipse,把Eclipse一開始的「歡迎使用」視窗關閉,如下圖:

0021

然後點選「檔案」功能表,如下圖所示:

0022

如上圖,到「新建」「其他」功能中,如下圖所示:

0023

在上圖捲動中間選單,直到出現「Mercurial」項目,打開「Mercurial」項目,再點選「使用Mercurial克隆版本庫」,然後按「下一步」,出現下圖:

0024

重點在上圖上方的「Repository location」中「URL」,請把我們之前在iDempiere的原始程式碼版本控制網頁中找到的Clone指令「hg clone https://bitbucket.org/idempiere/idempiere」中由HTTPS開始的URL複製到上圖的URL欄位中,然後按下「完成」,接著出現下圖:

0025

由上圖,我們可以看到iDempiere的原始程式碼有兩個版本:Devepopment及release-1.0c,我們安裝的iDempiere是1.0c版,所以應該「複製」release-1.0c版本,請在上圖中點選「release-1.0c」,再按「下一步」,到下圖:

0026

上圖顯示了iDempiere的release-1.0c版本的原始程式碼,請按「完成」開始「複製」到Eclipse的工作區中,以我的環境,就是資料夾「/home/idempiere/workspace/idempiere」中,在上圖按下「完成」,就會回到Eclipse的主視窗,如下圖:

0027

請注意上圖右下角箭號所指的地方,顯示iDempiere原始程式碼下載的進度,請等候下載完成。

下載完成時,Eclipse會出現如下圖所示:

0028

如上圖,左上方的「專案瀏覽器」會出現整個iDempiere的原始程式碼,及其結構,我們試著打開一支程式,如下圖所示:

0029

看到那完整的JAVA程式及JAVA開發的系統架構,可以瞭解iDempiere是個由JAVA完成軟體專案。

四、結語

本文介紹了iDempiere原始程式碼的版本控管,以及如何下載全部原始程式碼以建置配合iDempiere的開發環境,下一步是要學習如何在iDempiere修改相關程式。

另一個議題是,我們下載原始程式碼後,可以自行建立自己團隊使用的版本控管環境,可以利用Git或Mercurial建立版本控管伺器,然後把iDempiere原始程式碼上傳到版本控管伺服器,給開發團隊使用。這時,Eclipse的始程式碼下載點,就不是本文中的Bitbuekct下載點,而是開發團隊的版本控管伺服器提供的下載點。

接下來,我將會開始由iDempiere來討論各個ERP功能的操作,以及中文化的處理。

Simon Huang's ERP Workshop