JPiereの開発環境構築
ここではJPiereの開発環境を構築する方法をご紹介しています。
ページ内目次
JPiereの開発環境を構築するには、その前にiDempiereの開発環境が必要です。
【補足説明】iDempiereのバージョンとJPiereのバージョン
JPiereのバージョン番号はiDempiereのバージョン番号と同期をしています。そのため開発環境を構築する際には、同じバージョンのiDempiereのソースコードとJPiereのソースコードを使用するようにして下さい。
JPiereのソースコードは、GitHubで公開しています。
GitHub:JPiereリポジトリ
※2019年12月より、ソースコードの管理をBitBucketのMercurialから、GitHubのGitに移行しました。
JPiere(ジェイピエール)はiDempiere(アイデンピエレ)をベースとして次の5つに分類し、開発及び管理しています。
JPiereモディフィケーションズはiDempiereのコアとなっているソースコードに修正を加えたい場合に、OSGiのフラグメントの機能を活用して作成したプラグイン群です。Eclipseのプロジェクトはフラグメントのベースとなるプラグイン毎に作成する必要があるため複数存在していますが、リポジトリ上は1つのリポジトリでまとめて管理しています。
JPiereモディフィケーションズのリポジトリには下記のプラグインプロジェクトが含まれています
JPiere12以上~
- jpiere.modification.org.adempiere.base
- jpiere.modification.org.adempiere.ui.zk
- jpiere.modification.org.idempiere.zk.datatable
JPiere11まで
- jpiere.modification.org.adempiere.base
- jpiere.modification.org.adempiere.ui.zk
JPiereコンフィギュレーションズはパラメータ設定だけのカスタマイズになりますのでソースコードはありません。JPiereコンフィギュレーションズのリポジトリでは、PostgreSQLのダンプファイルを管理するのとJPiereコンフィギュレーションズに施されているカスタマイズのリソース(主にSQLのDDL)を管理しています。
◆PostgreSQLのダンプファイル(/data/ExpDat.dmp)
PostgreSQLのダンプファイルは、JPCSのdataフォルダの直下にあるExpDat.dmpファイルです。JPiereの開発環境を構築する際には、このダンプファイルを使用してデータベースをリストアして下さい。
【補足説明】JPiereコンフィギュレーションズだけを使用したい場合
JPiereコンフィギュレーションズだけを使用したい場合は、JPiereコンフィギュレーションズの使用上の注意を参考にして下さい。
JPiereフラグメンツはOSGiのフラグメントの機能を活用して作成したプラグイン群です。Eclipseのプロジェクトはフラグメントのベースとなるプラグイン毎に作成する必要があるため複数存在していますが、リポジトリ上は1つのリポジトリでまとめて管理しています。
JPiereフラグメンツのリポジトリには下記のプラグインプロジェクトが含まれています(2016年5月現在)。
- jpiere.fragment.org.adempiere.base
- jpiere.fragment.org.adempiere.report.jasper.library
- jpiere.fragment.org.adempiere.server
- jpiere.fragment.org.adempiere.ui.zk
JPiereベースプラグインは日本で必要とされるであろう機能を1つのプラグインにして提供しています。そのためJPiereベースプラグインのリポジトリで管理されているソースコードにはEclipseのプラグインプロジェクト(jpiere.base.plugin)が1つだけ含まれています。
JPiereベースプラグイン(JPBP)を使用する際には、JPiereフラグメンツ(JPFS)とJPiereコンフィギュレーションズ(JPCS)も一緒に使用する事を推奨いたします。
JPiereプラグインズでは、日本だけでなく多くの人にとって有益であろうプラグインを個々に独立して管理&開発しています。そのため、リポジトリも個々のプラグイン毎にあります。JPiereのリポジトリで、jpiere.plugin.○×△…となっているリポジトリはすべてJPiereプラグインズのリポジトリです。
◆JPiereプラグインズのリポジトリ(JPiere11~)
◆JPiereプラグインズのリポジトリ(JPiere8.2~JPiere10)
- jpiere.plugin.delete
- jpiere.plugin.groupware
- jpiere.plugin.webui.formwindow
- jpiere.plugin.webui.matrixwindow
- jpiere.plugin.webui.simpleinputinputwindow
【補足説明】プラグインの統合
JPiere8.2より"jpiere.plugin.webui.dashboardgadget" と "jpiere.plugin.webui.wysiwygeditor"の2つのプラグインを "jpiere.plugin.groupware"に統合しました。
◆JPiereプラグインズのリポジトリ(JPiere7.1まで)
- jpiere.plugin.delete
- jpiere.plugin.webui.dashboardgadget
- jpiere.plugin.webui.formwindow
- jpiere.plugin.webui.matrixwindow
- jpiere.plugin.webui.simpleinputinputwindow
- jpiere.plugin.webui.wysiwygeditor
【技術情報】JPPSのプラグインは単体で機能する!!
JPiereプラグインズはそれぞれ単体でiDempiereのプラグインとして使用する事ができるように意図して開発しています。そしてJPiereの開発環境に含めるかどうかは任意です。JPiereの開発環境に含めない場合は、除外したプラグインが提供している機能が使用できなくなるだけです。言い換えると使用すると思われるプラグインだけを含めてJPiereの開発環境を構築すれば良いようにしています。
JPiereコンフィギュレーションズ以外はソースコードをiDempiereの開発環境が構築されているEclipseにインポートする必要があります。
iDempiere6.1以上のインポート方法
iDempiere6.1からは、Mavenのプロジェクトとして、Eclipseにインポートする必要があります。

Eclipseのメニューバーからファイル->インポートを選択して下さい。
iDempiere5.1までのインポート方法
iDempiere5.1までは、普通のプラグインプロジェクトですので、普通のプロジェクトと同じ方法でEclipseにインポートする事ができます。

Eclipseのメニューバーからファイル->インポートを選択して下さい。

使いたいプラグイン選択肢てインポートして下さい。
プラグインプロジェクトのインポート後
JPiereのプラグインのプロジェクト名は、すべて"jpiere"からはじまるように統一していますので、プロジェクト・エクスプローラーでは一番上に配置されるのでわかりやすくなっています。
JPiereの各種プラグインをインポートしたら、デバッグやインストールパッケージにインポートしたプラグインを含める設定を行う必要があります。
EclipseからiDempiereを起動するために必要な設定
JPiereをEclipseから実行するための設定です。メニューの実行->実行構成を開きます。

左側のメニューの”Eclipseアプリケーション”から"server.product"を選択し、右に表示されるプラグインタブで、使用するプラグインのフラグをONにします。
※開始レベルと自動開始の設定はデフォルトでも動くと思いますが、適宜行って下さい。
【補足説明】プラグインの開始レベルと自動開始設定
JPiereの各種プラグインの開始レベルと自動開始設定でエラーになる場合、次のように開始レベルと自動開始の設定を行ってみて下さい。
- JPBP(jpiere.base.plugin)の開始レベルは"4"で、自動開始は"true"。
- JPPS(jpiere.plugin.○×△)の各種プラグインの開始レベルは"4"で、自動開始は"true"。
- JPFS(jpiere.fragment.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。
- JPMS(jpiere.modifications.○×△)の各種プラグインの開始レベルは"default"で、自動開始は"false"。※フラグメントプロジェクトなので変更できません。
基本方針として、通常のプラグインとして開発した場合は、開始レベルは"4"で、自動開始は"true"に設定してもらえれば問題ないと思います。そしてフラグメントとして開発した場合は開始レベルと自動開始の設定は変更する必要はありません。
JPiereモディフィケーションズだけの特別な設定
JPiereモディフィケーションズを有効にするために、次の設定が必要です。
◆jpiere.modification.org.adempiere.baseプロジェクト
jpiere.modification.org.adempiere.baseプロジェクトのJPiereモディフィケーションズを有効にするためにはorg.adempiere.baseプロジェクトのマニフェストファイルにクラスパス"jpiere.modification.org.adempiere.base.jar"を一番上に追加して下さい
【注意】マニフェストエディタ上でクラスパスを追加した場合
マニフェストエディタ上でクラスパスを追加した場合、ビルド情報にもそのクラスパスが自動で追加されてしまいます。ビルド情報へクラスパスを追加するのはJPiereモディフィケーションズの有効かの妨げになります。もしマニフェストエディタからクラスパスを追加た後で、ビルド情報へクラスパスも追加されているのを確認したらその部分の設定は削除して下さい。
◆jpiere.modification.org.adempiere.ui.zkプロジェクト
jpiere.modification.org.adempiere.ui.zkのプロジェクトもjpiere.modification.org.adempiere.baseプロジェクトと同様の設定を行います。
jpiere.modification.org.adempiere.ui.zkプロジェクトのJPiereモディフィケーションズを有効にするためにはorg.adempiere.ui.zkプロジェクトのマニフェストファイルにクラスパス"jpiere.modification.org.adempiere.ui.zk.jar"を一番上に追加して下さい
ビルドタブのランタイム情報に"jpiere.modification.org.adempiere.ui.zk.jar"が追加されていますので、選択し、Deleteボタンを押して削除して下さい。
JPiereのプラグインをiDempiereのインストールパッケージに含めるための設定
JPiereをインストールパッケージに含めるためにはorg.adempiere.server-featureプロジェクトにあるfeature.xmlを編集します。
プラグインタブで、追加ボタンをおし、JPiereのプラグインプロジェクトを選択して追加して下さい。これでJPiereのプラグインをあらかじめインストールパッケージに含める事ができます。
インストールパッケージの作成方法は、iDempiereとまったく同じです。次のコンテンツを参照して下さい。
【補足説明】BuckminsterのMaterializeでエラーが表示されたら(iDempiere5.1まで)
環境構築の際に、JPiereのプラグインをインストールパッケージに含める設定をした状態で、Materializeを行うと下記のようなエラーが表示される事があります。
ERROR [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in resourceMap file:/C:/src/idempiere-release4.1/org.adempiere.sdk-feature/adempiere.rmap
ERROR [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in searchPath orbit
ERROR [0004] : Rejecting provider p2(${url.orbit}[http://download.eclipse.org/tools/orbit/downloads/drops/R20150124073747/repository]): No component match was found
ERROR [0004] : Rejecting provider p2(${url.orbit.neon}[http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/]): No component match was found
ERROR [0004] : No suitable provider for component jpiere.fragment.org.adempiere.ui.zk:osgi.bundle was found in searchPath extend.workspace・・・・・・・・・・・・・・・・・・・
上記のようなエラーが表示されたら、一度、JPiereのプラグインをインストールパッケージ含める設定を削除してから、Materializeを実行してみて下さい。エラーが解消される事があります。Materializeを実行した後で、再度JPiereのプラグインをインストールパッケージに含めて下さい。
iDempiere6.1以上に必要なPOMファイルの修正
iDempiere6.1からビルドツールにMavenが採用された事に伴い、POMファイルを適切に設定する必要があります。
JPiereのプラグインプロジェクトにはすべてPOMファイルがあり、親のPOMファイルとしてiDempiereのorg.idempiere.parentプロジェクト内のPOMファイルを指定しています。このPOMファイルへの相対パスを適切に修正して下さい
iDempiere6.1以上でJPiereをインストールパッケージに含めるためのPOMファイルの修正
iDempiere6.1よりビルドツールがMavenになった事に伴い、JPiereのプラグインをiDempiereのインストールパッケージに含めるためには、org.adempiere.server-featureプロジェクトにあるfeature.xmlの編集に加えて、iDempiereのプラグインプロジェクト群がある直下のPOMファイルに<module>タグとしてJPiereのプラグイン群を追加設定する必要があります。
例: ※赤字が追加設定
<module>org.idempiere.p2</module>
<module>${idempiere.target}</module>
<module>../../src/jpiere/JPBP/jpiere.base.plugin</module>
<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.base</module>
<module>../../jpiere/JPFS/jpiere.fragment.org.adempiere.report.jasper.library</module>
<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.server</module>
<module>../../src/jpiere/JPFS/jpiere.fragment.org.adempiere.ui.zk</module>
<module>../../src/jpiere/JPMS/jpiere.modification.org.adempiere.base</module>
<module>../../src/jpiere/JPMS/jpiere.modification.org.adempiere.ui.zk</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.delete</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.webui.dashboardgadget</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.webui.formwindow</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.webui.matrixwindow</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.pivotwindow/jpiere.plugin.webui.pivotwindow</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.pivotwindow/jpiere.plugin.webui.pivotwindow.fragment</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.webui.simpleinputwindow</module>
<module>../../src/jpiere/JPPS/jpiere.plugin.webui.wysiwygeditor</module>
</modules>
これで、インストールパッケージにJPiereを含める事ができます。
インストールパッケージの作成方法は下記を参照して下さい。




















