Help us understand the problem. What is going on with this article?

iDempiere v2.0の開発環境をMacに構築する

More than 5 years have passed since last update.

iDempiere(アイデンピエレ)とは

iDempiereは、オープンソースのERPパッケージ(統合業務パッケージ)ソフトウェアです。
受注から出荷までの一連のサプライチェーンマネージメント(SCM)と管理会計、財務会計人事管理を含めた企業の基幹業務、顧客管理機能(CRM)などもサポートします。

iDempiereは、販売管理、購買管理、在庫管理、生産管理、固定資産管理、人事給与管理、財務会計といった基幹業務機能を提供しているだけでなく、それらの機能や情報を相互に連携することで、業務の効率化、見える化も推進できるソフトウェアであり、世界で最も高機能なオープンソースERPのひとつとして近年注目が集まっています。

from OpenStandia iDempiereの概要

使用するもの

  • Mac OS X 10.8
  • Eclipse Juno

前提

  • PostgreSQL 9.2がインストールされ、接続可能な状態であること。

準備

Eclipse Buckminster プラグインの導入

BuckminsterとはEclipse Plug-inのビルドやテストを補助するEclipseプラグインです。プラグインのためのプラグイン!

Eclipseメニュー: Help > Install New Software からInstallダイアログを表示して、アップデートサイト(Work with:)に、 http://download.eclipse.org/tools/buckminster/updates-4.2 を指定し、"core", "maven", "pde" の3つのパッケージを選択してインストールします。

iDempiereのソースツリーをクローンする

hg clone https://bitbucket.org/idempiere/idempiere idempiere

これに時間がかかるようなら、Bitbucketからアーカイブをダウンロードしてもよい、https://bitbucket.org/idempiere/idempiere/downloads のTagsにあるv2.0を選択

Eclipseの設定

ワークスペースディレクトリの指定

Eclipseのメニュー: File > Switch Workspace > Other からワークスペースを切り替えます。

クローンした下記のような構成のディレクトリをワークスペースとして指定します。

idempiere-idempiere-2a7afff6e5f1.png

Buckminsterでマテリアル化

Eclipseのメニュー: File > Import から、Importダイアログを表示します。

ここから、Materialize from Buckminster MSPEC, CQUERY, or BOM を選択します。

Import.png

次に、adempiere.mspecを選択します。

Open.png

Nextで次へと進んでいきFinish後には、Eclipseが下記のようにパッケージが多数ロードされた状態になります。

Java_-_Eclipse_-__Users_reoring_Desktop_idempiere-idempiere-2a7afff6e5f1.png

この状態で、Eclipseメニュー: Project > Clean… を実行します。

idempiere.propertiesの配置

idempiere.propertiesをワークスペースの直下に配置します。

#Adempiere
#Fri Dec 06 19:35:08 JST 2013
SingleInstancePerWindow=xyzN
WarningD=Einstellungen_nicht_aendern,_da_diese_undokumentierte_Nebenwirkungen_haben.
OpenWindowMaximized=xyzN
LoadTabMetaDataBackground=xyzN
UILookFeel=xyzAdempiere
StorePassword=xyzY
DataSource=xyzjava\:adempiereDB
Role=xyzGardenWorld Admin
CacheWindow=xyzY
ApplicationPassword=xyzGardenAdmin
Warning=Do_not_change_any_of_the_data_as_they_will_have_undocumented_side_effects.
TempDir=xyz/tmp
TraceLevel=xyzWARNING
LogMigrationScript=xyzN
AdempiereSys=xyzN
CDate=xyz2013-12-06 07\:44\:53.585
ShowTrl=xyzN
TraceFile=xyzN
Printer=xyz
AutoLogin=xyzN
Organization=xyz*
Client=xyzGardenWorld
PrintPreview=xyzN
ApplicationUserID=xyzGardenAdmin
Language=xyzEnglish
Charset=xyzUS-ASCII
ValidateConnectionOnStartup=xyzN
AutoNew=xyzN
Connection=xyzCConnection[name\=idempiere{idempiere-idempiere-adempiere},AppsHost\=idempiere,WebPort\=8080,SSLPort\=8443,type\=PostgreSQL,DBhost\=127.0.0.1,DBport\=5432,DBname\=idempiere,BQ\=false,FW\=false,FWhost\=,FWport\=0,UID\=adempiere,PWD\=adempiere]
UITheme=xyzAdempiere Theme
AutoCommit=xyzY
ShowAcct=xyzY            

データベースの設定

PostgreSQLにiDempiereのDDLを流し込みます。

DDLは、クローンしたものには含まれていないようなので、本家のアーカイブから取り出します。http://www.idempiere.org/downloads ここから idempiereServer.gtk.linux.x86_64.zip を取得します。

zipファイルを展開したあと、data/seed/Adempiere_pg84.jar からPostgreSQLのdumpファイルを取り出します。

jar xf data/seed/Adempiere_pg84.jar とすると、Adempiere_pg84.dmpが取り出せます。
これを、psql -h localhost -d idempiere -f Adempiere_pg84.dmpとしてデータベースに展開します。

起動

実行設定のダイアログを表示します。

Eclipseメニュー: Run > Run Configurations

ダイアログ中の、Eclipse Application > server.product を選択します。

Mac OS Xでの実行時の注意

Macで実行するときはArgumentsタブのProgram arguments: を調整します。
最初は、-os ${target.os} -arch ${target.arch} -nl ${target.nl} -consoleLogこうなっています。が、${target.arch}の部分が正しく認識されないのでx86を指定します-os ${target.os} -arch x86 -nl ${target.nl} -consoleLog -console

--launcher.secondThreadという指定も必要なようですが、これが何を示しているかは、調べていません。ごめんなさい。追記: どうやらこれはSwingのスレッドをメインスレッドで実行しないためのオプションのようです。なので、WebUIには関係ありませんでした。

最終的にProgram arguments:は、-os ${target.os} -arch x86 -nl ${target.nl} -consoleLog -console --launcher.secondThreadになります。

これで、 Runを実行し、ブラウザで http://localhost:8080/ を開けばiDempiereの画面が見えているはずです。他のプロセスが8080ポートを使っている場合は、事前にそのプロセスのポートを変更するか、idempiere.propertiesでポートを変更します。

IDの固定化

iDempiereが使用しているZK Frameworkは、UI要素のID(HTMLエレメントのID)を動的に生成しています。これは自動テストには非常に厄介なので無効化します。

幸い、iDempiereにはID Generatorが用意されていてこれを使うだけで固定IDにすることが可能です。

ローカル環境での変更

EclipseのRun Configurationから、server.product.functionaltest を選択して起動します。

プロダクション環境での変更

zk.xmlというXML設定ファイルのコメントを外します。

plugins/org.adempiere.ui.zk_1.0.0.v20131101-0745/WEB-INF/zk.xml
        <!-- system-config>
                <id-generator-class>org.adempiere.webui.AdempiereIdGenerator</id-generator-class>
        </system-config -->

これを、

plugins/org.adempiere.ui.zk_1.0.0.v20131101-0745/WEB-INF/zk.xml
        <system-config>
                <id-generator-class>org.adempiere.webui.AdempiereIdGenerator</id-generator-class>
        </system-config>

こうして、service idempiere restartで再起動します。

プロダクション環境にiDempiereを構築するには、私が用意したVagrantとChefレシピを使うと簡単に構築できます。https://github.com/reoring/idempiere_vagrant

参考

reoring
株式会社クラフトマンソフトウェア代表 | Schoo講師 | 分報発祥の会社 | YYPHP主催 | マンガでわかるDocker監修 | 実践ドメイン駆動設計レビュア | 自動受け入れテスト ShouldBee http://shouldbee.at/
http://c16e.com/
shouldbee
開発者向けテスト支援サービスShouldBeeを開発・運営するスタートアップ(onlab第8期)
http://shouldbee.at
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした